首先於SAP介面上建立客戶發票(DR),建立後取得日記帳分錄為1800000008
接著欲使用API「Journal Entry – Clearing (Asynchronous)」達成類似在「過帳收款」頁面的沖帳行為,將部分金額11000結清轉入銀存11030002:
這邊先簡單化,先不考慮手續費問題:
使用官方文件 的Sample Payload for Partial Clearing,參數改成目前測試環境的。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sfin="http://sap.com/xi/SAPSCORE/SFIN"> <soapenv:Header/> <soapenv:Body> <sfin:JournalEntryBulkClearingRequest> <MessageHeader> <ID>MSG_20240715_Partial</ID> <CreationDateTime>2024-07-15T11:00:00.1234567Z</CreationDateTime> <TestDataIndicator>false</TestDataIndicator> </MessageHeader> <JournalEntryClearingRequest> <MessageHeader> <ID>MSG_20240715_01</ID> <CreationDateTime>2024-07-15T11:00:00.1234567Z</CreationDateTime> <TestDataIndicator/> </MessageHeader> <JournalEntry> <CompanyCode>FIVE</CompanyCode> <AccountingDocumentType>DZ</AccountingDocumentType> <DocumentDate>2024-07-15</DocumentDate> <PostingDate>2024-07-15</PostingDate> <CurrencyCode>TWD</CurrencyCode> <DocumentHeaderText>Clearing API</DocumentHeaderText> <CreatedByUser>5STAR API</CreatedByUser> <APARItems> <ReferenceDocumentItem>2</ReferenceDocumentItem> <CompanyCode>FIVE</CompanyCode> <AccountType>D</AccountType> <APARAccount>1000000</APARAccount> <FiscalYear>2024</FiscalYear> <AccountingDocument>1800000008</AccountingDocument> <AccountingDocumentItem>1</AccountingDocumentItem> <PartialPaymentAmtInDspCrcy currencyCode="TWD">11000</PartialPaymentAmtInDspCrcy> </APARItems> </JournalEntry> </JournalEntryClearingRequest> </sfin:JournalEntryBulkClearingRequest> </soapenv:Body> </soapenv:Envelope>
API回傳錯誤訊息如下: 「交易貨幣 TWD 11,000 中的餘額過大無法自動更正」
此問題我認為是沒帶入銀存account,所以修改一下參數,加入GLItems 將銀行總帳科目帶入。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sfin="http://sap.com/xi/SAPSCORE/SFIN"> <soapenv:Header/> <soapenv:Body> <sfin:JournalEntryBulkClearingRequest> <MessageHeader> <ID>MSG_20240715_Partial</ID> <CreationDateTime>2024-07-15T11:00:00.1234567Z</CreationDateTime> <TestDataIndicator>false</TestDataIndicator> </MessageHeader> <JournalEntryClearingRequest> <MessageHeader> <ID>MSG_20240715_01</ID> <CreationDateTime>2024-07-15T11:00:00.1234567Z</CreationDateTime> <TestDataIndicator/> </MessageHeader> <JournalEntry> <CompanyCode>FIVE</CompanyCode> <AccountingDocumentType>DZ</AccountingDocumentType> <DocumentDate>2024-07-15</DocumentDate> <PostingDate>2024-07-15</PostingDate> <CurrencyCode>TWD</CurrencyCode> <DocumentHeaderText>Clearing API</DocumentHeaderText> <CreatedByUser>5STAR API</CreatedByUser> <GLItems> <ReferenceDocumentItem>1</ReferenceDocumentItem> <CompanyCode>FIVE</CompanyCode> <GLAccount>11030002</GLAccount> <FiscalYear>2024</FiscalYear> <AccountingDocument>1800000008</AccountingDocument> <AccountingDocumentItem>1</AccountingDocumentItem> </GLItems> <APARItems> <ReferenceDocumentItem>2</ReferenceDocumentItem> <CompanyCode>FIVE</CompanyCode> <AccountType>D</AccountType> <APARAccount>1000000</APARAccount> <FiscalYear>2024</FiscalYear> <AccountingDocument>1800000008</AccountingDocument> <AccountingDocumentItem>1</AccountingDocumentItem> <PartialPaymentAmtInDspCrcy currencyCode="TWD">11000</PartialPaymentAmtInDspCrcy> </APARItems> </JournalEntry> </JournalEntryClearingRequest> </sfin:JournalEntryBulkClearingRequest> </soapenv:Body> </soapenv:Envelope>
先不考慮GLItems沒有提供Amount欄位可以輸入金額的問題,我以為她會將DR的11000自動帶入借方銀存科目。
結果得到如下錯誤訊息: 帳戶0011030002中沒有未結項目的管理
問題總結:
- 今年3月/5月/7月, Journal Entry – Clearing (Asynchronous) 這支API於SAP community中陸續都有人發問相關問題,因此想釐清一下,目前這支API的情況。
- 請問這支API是本來就不支援過帳收款(DZ)結清客戶發票(DR)的嗎? 還是有什麼設定要做? 或使用方式不對?
- 請問過帳收款(沖帳)是否有其他備案? 如Excel匯入沖帳。 因為供應商發票是可以透過excel匯入的,若過帳收款也可以,也不一定要走API。
- 因為我們沖帳帳務資料龐大,未來不太可能手動逐筆結清。
SAP Community 相關問題連結:
- 2024/07 (3周前) 還有人發問:
https://community.sap.com/t5/enterprise-resource-planning-q-a/clear-incoming-payments-with-api/qaq-p...
- 2024/03 還有人追加發問
https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/guidelines-for-api-journal-en...
- 2024/05 還有人追加發問
https://community.sap.com/t5/enterprise-resource-planning-q-a/post-incoming-payments-with-an-api-s-4...
- 目前沒看到官方有正式回覆
以下補充實際需求,需考慮手續費問題: