cancel
Showing results for 
Search instead for 
Did you mean: 

Incoimg payment on B1if

Former Member
0 Kudos

Dear Experts,

We have a situation to post Incoming payment automatically when the Invoice posted successfully. We have created scenario for Invoice on SAP B1if. Its working fine. But we need help to post incoming payment for this invoice which is posted .

Thanks in Advance.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member

Hi Senthil,

I am doing something like that already with one of my scenarios. I have in my processing flow two B1 object call atoms. The first one to insert the Invoice and the second one to insert the incoming payment.

The incoming payment payload is something like this. Check the Payment_Invoices xml section. You can link the payment to the invoice you already inserted by assigning to the DocEntry tag your Invoice's DocEntry value, which is returned in the Msg of the B1 object call atom payload with the attribute DImsg when the insertion is executed.

<Payments>
            <row>
                <CardCode>
                    <xsl:value-of select="$sale/CardCode"></xsl:value-of>
                </CardCode>
                <DocDate>
                    <xsl:value-of select="$sale/DocDate"></xsl:value-of>
                </DocDate>
                <DocType>rCustomer</DocType>
                <CashAccount>1031</CashAccount>
                <CheckAccount>1000</CheckAccount>
                <DocCurrency>
                    <xsl:value-of select="$sale/Currency"></xsl:value-of>
                </DocCurrency>
                <CashSum>
                    <xsl:value-of select="$sale/PaidAmount"></xsl:value-of>
                </CashSum>
                <DocRate><xsl:value-of select="$sale/DocRate"></xsl:value-of></DocRate>
                <TransferSum>0.000000</TransferSum>
                <Remarks>WS</Remarks>
                <BPLID>1</BPLID>
            </row>
        </Payments>
        <Payments_Invoices>
            <row>
                <LineNum>0</LineNum>
                <DocEntry>
                    <xsl:value-of select="$docEntry"></xsl:value-of>
                </DocEntry>
                <DocLine>1</DocLine>
                <DiscountPercent>0.000000</DiscountPercent>
                <SumApplied>
                    <xsl:value-of select="$docTotal"></xsl:value-of>
                </SumApplied>
                <PaidSum></PaidSum>
                <InvoiceType>it_Invoice</InvoiceType>
            </row>
        </Payments_Invoices>
        <Payments_CreditCards></Payments_CreditCards>
        <Payments_DebitCards></Payments_DebitCards>
        <Payments_Checks></Payments_Checks>
        <PrimaryFormItems>
            <row>
                <CashFlowLineItemID>0</CashFlowLineItemID>
                <Credit>0.0</Credit>
                <PaymentMeans>pmtCash</PaymentMeans>
                <xsl:choose>
                    <xsl:when test="$sale/Currency = 'SRD'">
                        <AmountLC>
                            <xsl:value-of select="$sale/PaidAmount"></xsl:value-of>
                        </AmountLC>
                    </xsl:when>
                    <xsl:otherwise>
                        <AmountFC>
                            <xsl:value-of select="$sale/PaidAmount"></xsl:value-of>
                        </AmountFC>
                    </xsl:otherwise>
                </xsl:choose>
            </row>
        </PrimaryFormItems>

Hope it helps,

Gabriela

former_member230765
Participant
0 Kudos

Hi,

If I understood you correctly, you do expect the incoming payment can be created automatically as soon as the invoices(created by "B1i") is created, if this is the case, Two options I think.

1. Setup Successor in the invoices step Outbound

The integration framework allows you to define another scenario step which the integration framework calls after it finishes the processing of the current scenario step. You can use this mechanism to send back result information to the sender system, for example. Select a scenario step from the list. The list displays only scenario steps, assigned to the same scenario package and that have the Predecessor inbound type.

2. Quote Heinz Pauly's remark in another conversitation, "By default the Integration Framework will filter events, sent by user ‘B1i’ to avoid endless loops. In Maintenance->Cfg B1 Event Filter you can uncheck the checkbox ‘B1i User Filter Switched On’. With that the responsibility to avoid endless loops is in your hands. Use the ‘Exclude’ options to optimize your settings."

If that is the case above, I suggest to use option 1.

Best regards

Jim Jin