ACCPACXAPILib.xapiSession o_sess = new ACCPACXAPILib.xapiSessionClass();
o_sess.Open("ADMIN", "ADMIN", "SAMINC", System.DateTime.get_Now(), 0);
ACCPACXAPILib.IxapiView o_viewOEORDH = null;
ACCPACXAPILib.IxapiView o_viewOEORPP = null;
ACCPACXAPILib.IxapiView o_viewARBATCH = null;
o_viewOEORDH = o_sess.OpenView( "OE0520", "OE" );
o_viewOEORPP = o_sess.OpenView( "OE0530", "OE" );
o_viewOEORDH.Browse( "ORDNUMBER = ORD000000000088", 1 );
o_viewOEORDH.Fetch();
String strUniqueId = o_viewOEORDH.get_Fields().get_Field( 0 ).get_Value().ToString(); // ORDUNIQ
String strCustNo = o_viewOEORDH.get_Fields().get_Field( 2 ).get_Value().ToString(); // Customer No.
o_viewOEORPP.get_Fields().get_Field( 0 ).set_Value( strUniqueId.Trim() );
o_viewOEORPP.get_Fields().get_Field( 1 ).set_Value( strCustNo.Trim() );
o_viewOEORPP.get_Fields().get_Field( 2 ).set_Value( strShipName.Trim() );
o_viewOEORPP.get_Fields().get_Field( 3 ).set_Value( strSrcCurr.Trim() );
o_viewOEORPP.get_Fields().get_Field( 4 ).set_Value( strRate.Trim() );
o_viewOEORPP.get_Fields().get_Field( 5 ).set_Value( strRateDate.Trim() );
o_viewOEORPP.get_Fields().get_Field( 6 ).set_Value( strRateType.Trim() );
o_viewOEORPP.get_Fields().get_Field( 7 ).set_Value( strRateRep.Trim() );
o_viewOEORPP.get_Fields().get_Field( 8 ).set_Value( strInvNet.Trim() );
o_viewOEORPP.get_Fields().get_Field( 9 ).set_Value( strDiscAvail.Trim() );
o_viewOEORPP.get_Fields().get_Field( 10 ).set_Value( strAmtDue.Trim() );
o_viewARBATCH = o_sess.OpenView( "AR0041", "AR" );
o_viewARBATCH.get_Fields().get_Field( 0 ).set_Value( "CA" );
o_viewARBATCH.Init();
String strBBatchNo = o_viewARBATCH.get_Fields().get_Field( 1 ).get_Value().ToString();
String strBBatchDate = o_viewARBATCH.get_Fields().get_Field( 2 ).get_Value().ToString();
String strBRateExch = o_viewARBATCH.get_Fields().get_Field( 14 ).get_Value().ToString();
String strBRateDate = o_viewARBATCH.get_Fields().get_Field( 11 ).get_Value().ToString();
String strBRateType = o_viewARBATCH.get_Fields().get_Field( 13 ).get_Value().ToString();
String strBIDBank = o_viewARBATCH.get_Fields().get_Field( 8 ).get_Value().ToString();
o_viewOEORPP.get_Fields().get_Field( 11 ).set_Value( strBBatchNo.Trim() );
o_viewOEORPP.get_Fields().get_Field( 15 ).set_Value( strBBatchDate.Trim() );
o_viewOEORPP.get_Fields().get_Field( 19 ).set_Value( strBRateExch.Trim() );
o_viewOEORPP.get_Fields().get_Field( 20 ).set_Value( strBRateDate.Trim() );
o_viewOEORPP.get_Fields().get_Field( 18 ).set_Value( strBRateType.Trim() );
o_viewOEORPP.get_Fields().get_Field( 12 ).set_Value( strBIDBank.Trim() );
o_viewOEORPP.get_Fields().get_Field( 13 ).set_Value( "VISA" ); // Recptype
o_viewOEORPP.get_Fields().get_Field( 14 ).set_Value( "ET100" ); // Check Number
o_viewOEORPP.get_Fields().get_Field( 16 ).set_Value( "5.00" ); // CC Payment Amount
o_viewOEORPP.Insert(); // *** This call fails.