I have just encountered a strange problem with DI API outgoing payment with check as payment means.
I thought I would just share this here.
I had a running addon which creates an outgoing payment using checks as payment mean in SBO 882.PL8
below is the code to include the check :
Dim oPym As SAPbobsCOM.Payments Set oPym = .GetBusinessObject(oPaymentsDrafts) oPym.DocObjectCode = bopot_OutgoingPayments oPym.CardCode = "S32" oPym.Invoices.DocEntry = 42 oPym.Invoices.InvoiceType = it_PurchaseInvoice oPym.Invoices.SumApplied = 150 oPym.Checks.CheckSum = 150 oPym.Checks.BankCode = "BankCode" oPym.Checks.AccounttNum = "BankAccount" lErr = oPym.Add
While testing, we had upgraded the SBO + database into SBO 882.PL9.
After this upgrade, the outgoing payment does not get created anymore, with error ‘No Matching Record Found.’
After much testing, we found out that in order to create checks as the payment mean from DI,
The BankCode and BankAccount must match the Default HouseBank in the Administration – System Initialization – Company Details – Basic Initialization. (which does not make sense, since the UI allows us to create check from other bank)
Or, if we need to use other bank account, the setup in the Default House Bank must be emptied. (This includes all the field in this section).
Now, in my original 882PL8 database, this setting is empty. Thus I can create the document without problem.
When we upgraded this database to 882PL9, somehow after PL Upgrade there is a Default Bank Country here.
Because of this, the DI throwing the error when creating.
In short, if you encounter ‘No Matching Record Found.’ when creating check outgoing payment :
1. Check that your Bank Account and Bank Code exists in DSC1 Table.
2. As this documents show, Check the Default House Bank in Administration – System Initialization – Company Details – Basic Initialization.
PS: I have tested this problem occurs in :
– SBO 882PL8
– SBO 882PL10
– SBO 882PL11