Skip to Content
Technical Articles

Guidelines for API Journal Entry – Change (Asynchronous)

In this blog post you will learn some constraints, help information about API Journal Entry – Change (Asynchronous).

To learn more about Journal Entry APIs at Guidelines for API Journal Entry – Post.

1. Usage

API Journal Entry – Change (Asynchronous) was delivered in CE1908, which provides asynchronous SOAP API which enable remote systems to change part of the header or item information of existing journal entries in the S4/HANA tenant.

This service contains importing parameter tables for:

  • Journal entry header lines
  • G/L item lines
  • Accounts payable and accounts receivable item lines

To learn more about the information of importing parameters at SAP Help Journal Entry – Change (Asynchronous).

Regarding the changeability of the fields delivered in Change API, you need to know that the change API shares the field status related configuration with Manage Journal Entry app, which controls whether a field is editable or not. Therefore, to some degree, user can check the Manage Journal Entry app for the field changeability as a reference. That is, If a field is not changeable on the user interface, the change API does not allow changes, either. Nevertheless, the change API and the Manage Journal Entry app are different products, there can be inconsistent between them. For example, a field is editable in Manage Journal Entry app but it is not in the scope of the change API at all.

2. Prerequisite

In order to use this API, you need to firstly configure communication arrangement for communication scenario Finance – Posting Integration (SAP_COM_0002).

Read more at Guidelines for Configuring Communication Scenario Finance – Posting Integration (SAP_COM_0002)

3. How to Test

This  API is SOAP service. I suggest to test it with SOAPUI.

Read more at Guidelines for Testing Journal Entry API with SOAPUI and Checking Response Message

4. How to Check Response Message

As this is asynchronous API, you need to check the response message via Fiori App Message Dashboard.

Read more at Guidelines for Testing Journal Entry API with SOAPUI and Checking Response Message

5. Constraints and Consulting Questions

 

5.1    Constraints

Journal Entry – Change API has the following limitations:

  • Do not support changing the journal entry with no entry view
  • As I said in the part of Usage, it does not mean that all the input fields in Change API’s XML structure are changeable for one Journal Entry. Whether the field is changeable depends on the following factors on specific system:
  1. Document Change Rules, Line Item in customizing controls if the field is editable for the specific combination of Account Type, Transaction Type and Company Code.

For S/4HANA Cloud, this is preconfigured. No SSCUI is available for this customizing.

2. The field status must not be suppress, which is controlled in Posting Key and Field Status Group maintained in account master data 

For S/4HANA Cloud, the customizing of Posting Key is preconfigured. No SSCUI is available for this customizing.

  • Must keep the sequence of items as JournalEntryHeader, JournalEntryGLItem, JournalEntryDebtorCreditorItem. Incorrect sequencing or mixing of different types of items results in missing data lines. No error message is issued in such case.

The screenshot shows the incorrect example.

6.Appendix

  1. SAP Help Page

Journal Entry – Change (Asynchronous)

  1. SAP API Business Hub

Journal Entry – Change (Asynchronous)

  1. Example Payload
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sfin="http://sap.com/xi/SAPSCORE/SFIN">
       <soapenv:Header/>
       <soapenv:Body>
          <sfin:JournalEntryBulkChangeRequestMessage>
             <MessageHeader>
                <ID>MSG_20190512_4.12</ID>
                <CreationDateTime>2019-04-12T12:00:00.1234567Z</CreationDateTime>
             </MessageHeader>
             <!--Zero or more repetitions:-->
             <JournalEntryHeader>
                <MessageHeader>
                   <ID>MSG_Request_1_Header</ID>
                   <CreationDateTime>2019-04-12T12:00:00.1234567Z</CreationDateTime>
                </MessageHeader>
                <HeaderKey>
                   <AccountingDocument>1900001044</AccountingDocument>
                   <CompanyCode>1010</CompanyCode>
                   <FiscalYear>2019</FiscalYear>
                </HeaderKey>
                <!--Optional:-->
                <DocumentHeaderTextChange>
                   <DocumentHeaderText>Change API Test</DocumentHeaderText>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </DocumentHeaderTextChange>
                <!--Optional:-->
                <DocumentReferenceIDChange>
                   <DocumentReferenceID>Change Ref ID</DocumentReferenceID>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </DocumentReferenceIDChange>
             </JournalEntryHeader>
             <JournalEntryGLItem>
                <MessageHeader>
                   <ID>MSG_Request_1_GL_IT2</ID>
                   <CreationDateTime>2019-04-12T12:00:00.1234567Z</CreationDateTime>
                </MessageHeader>
                <ItemKey>
                   <AccountingDocument>1900001044</AccountingDocument>
                   <CompanyCode>1010</CompanyCode>
                   <FiscalYear>2019</FiscalYear>
                   <AccountingDocumentItemID>2</AccountingDocumentItemID>
                </ItemKey>
                <!--Optional:-->
                <DocumentItemTextChange>
                   <DocumentItemText>Change Item 2</DocumentItemText>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </DocumentItemTextChange>
                <!--Optional:-->
                <AssignmentReferenceChange>
                   <AssignmentReference>Chg Assignment 2</AssignmentReference>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </AssignmentReferenceChange>
             </JournalEntryGLItem>
             <JournalEntryGLItem>
                <MessageHeader>
                   <ID>MSG_Request_1_GL_IT3</ID>
                   <CreationDateTime>2019-04-12T12:00:00.1234567Z</CreationDateTime>
                </MessageHeader>
                <ItemKey>
                   <AccountingDocument>1900001044</AccountingDocument>
                   <CompanyCode>1010</CompanyCode>
                   <FiscalYear>2019</FiscalYear>
                   <AccountingDocumentItemID>3</AccountingDocumentItemID>
                </ItemKey>
                <!--Optional:-->
                <DocumentItemTextChange>
                   <DocumentItemText>Change Item 3</DocumentItemText>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </DocumentItemTextChange>
                <!--Optional:-->
                <AssignmentReferenceChange>
                   <AssignmentReference>Chg Assignment 3</AssignmentReference>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </AssignmentReferenceChange>
             </JournalEntryGLItem>
             <JournalEntryDebtorCreditorItem>
                <MessageHeader>
                   <ID>MSG_Request_1_AR_IT1</ID>
                   <CreationDateTime>2019-04-12T12:00:00.1234567Z</CreationDateTime>
                </MessageHeader>
                <ItemKey>
                   <AccountingDocument>1900001044</AccountingDocument>
                   <CompanyCode>1010</CompanyCode>
                   <FiscalYear>2019</FiscalYear>
                   <AccountingDocumentItemID>1</AccountingDocumentItemID>
                </ItemKey>
                <DocumentItemTextChange>
                   <DocumentItemText>Change Item 1</DocumentItemText>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </DocumentItemTextChange>
                <!--Optional:-->
                <AssignmentReferenceChange>
                   <AssignmentReference>Chg Assignment 1</AssignmentReference>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </AssignmentReferenceChange>
                <!--Optional:-->
                <!--<SpecialGLAccountAssignmentChange>-->
                <!--<SpecialGLAccountAssignment>?</SpecialGLAccountAssignment>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</SpecialGLAccountAssignmentChange>-->
                <!--Optional:-->
                <!--<Reference1IDByBusinessPartnerChange>-->
                <!--<Reference1IDByBusinessPartner>Ref Key 1</Reference1IDByBusinessPartner>-->
                <!--<FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>-->
                <!--</Reference1IDByBusinessPartnerChange>-->
                <!--Optional:-->
                <BPBankAccountInternalIDChange>
                   <BPBankAccountInternalID>0001</BPBankAccountInternalID>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </BPBankAccountInternalIDChange>
                <!--Optional:-->
                <HouseBankChange>
                   <HouseBank>DEBK2</HouseBank>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </HouseBankChange>
                <!--Optional:-->
                <HouseBankAccountChange>
                   <HouseBankAccount>DEAC2</HouseBankAccount>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </HouseBankAccountChange>
                <!--Optional:-->
                <!--<InvoiceReferenceChange>-->
                <!--<InvoiceReference>?</InvoiceReference>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</InvoiceReferenceChange>-->
                <!--Optional:-->
                <!--<InvoiceReferenceFiscalYearChange>-->
                <!--<InvoiceReferenceFiscalYear>?</InvoiceReferenceFiscalYear>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</InvoiceReferenceFiscalYearChange>-->
                <!--Optional:-->
                <!--<InvoiceItemReferenceChange>-->
                <!--<InvoiceItemReference>?</InvoiceItemReference>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</InvoiceItemReferenceChange>-->
                <!--Optional:-->
                <AmountInPaymentCurrencyChange>
                   <AmountInPaymentCurrency currencyCode="GBP">125</AmountInPaymentCurrency>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </AmountInPaymentCurrencyChange>
                <!--Optional:-->
                <!--<LastDunningDateChange>-->
                <!--<LastDunningDate>?</LastDunningDate>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</LastDunningDateChange>-->
                <!--Optional:-->
                <!--<DunningBlockingReasonCodeChange>-->
                <!--<DunningBlockingReasonCode listID="?" listVersionID="?" listAgencyID="?">?</DunningBlockingReasonCode>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</DunningBlockingReasonCodeChange>-->
                <!--Optional:-->
                <!--<DunningLevelChange>-->
                <!--<DunningLevel listID="?" listVersionID="?" listAgencyID="?">?</DunningLevel>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</DunningLevelChange>-->
                <!--Optional:-->
                <!--<DunningKeyChange>-->
                <!--<DunningKey listID="?" listVersionID="?" listAgencyID="?">?</DunningKey>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</DunningKeyChange>-->
                <!--Optional:-->
                <PaymentTermsChange>
                   <PaymentTerms>0003</PaymentTerms>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </PaymentTermsChange>
                <!--Optional:-->
                <DueCalculationBaseDateChange>
                   <DueCalculationBaseDate>2019-05-31</DueCalculationBaseDate>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </DueCalculationBaseDateChange>
                <!--Optional:-->
                <!--<CashDiscount1DaysChange>-->
                <!--<CashDiscount1Days>?</CashDiscount1Days>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</CashDiscount1DaysChange>-->
                <!--Optional:-->
                <!--<CashDiscount2DaysChange>-->
                <!--<CashDiscount2Days>?</CashDiscount2Days>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</CashDiscount2DaysChange>-->
                <!--Optional:-->
                <!--<NetPaymentDaysChange>-->
                <!--<NetPaymentDays>?</NetPaymentDays>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</NetPaymentDaysChange>-->
                <!--Optional:-->
                <!--<CashDiscount1PercentChange>-->
                <!--<CashDiscount1Percent>?</CashDiscount1Percent>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</CashDiscount1PercentChange>-->
                <!--Optional:-->
                <!--<CashDiscount2PercentChange>-->
                <!--<CashDiscount2Percent>?</CashDiscount2Percent>-->
                <!--<FieldValueChangeIsRequested>false</FieldValueChangeIsRequested>-->
                <!--</CashDiscount2PercentChange>-->
                <!--Optional:-->
                <PaymentMethodChange>
                   <PaymentMethod>E</PaymentMethod>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </PaymentMethodChange>
                <!--Optional:-->
                <PaymentBlockingReasonCodeChange>
                   <PaymentBlockingReasonCode listID="?" listVersionID="?" listAgencyID="?">9</PaymentBlockingReasonCode>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </PaymentBlockingReasonCodeChange>
                <!--Optional:-->
                <FixedCashDiscountChange>
                   <FixedCashDiscount>1</FixedCashDiscount>
                   <FieldValueChangeIsRequested>true</FieldValueChangeIsRequested>
                </FixedCashDiscountChange>
             </JournalEntryDebtorCreditorItem>
          </sfin:JournalEntryBulkChangeRequestMessage>
       </soapenv:Body>
    </soapenv:Envelope>​

 

Be the first to leave a comment
You must be Logged on to comment or reply to a post.