cancel
Showing results for 
Search instead for 
Did you mean: 

API: Journal Entry – Clearing (Asynchronous) 問題請教

viclin
Explorer
0 Kudos
505

首先於SAP介面上建立客戶發票(DR),建立後取得日記帳分錄為1800000008

viclin_1-1722304439705.png

接著欲使用API「Journal Entry – Clearing (Asynchronous)」達成類似在「過帳收款」頁面的沖帳行為,將部分金額11000結清轉入銀存11030002:

viclin_2-1722304556300.png

這邊先簡單化,先不考慮手續費問題:

viclin_3-1722304613723.png使用官方文件 的Sample Payload for Partial Clearing,參數改成目前測試環境的。

viclin_4-1722304735335.png

viclin_5-1722304803441.png

 

<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 中的餘額過大無法自動更正

viclin_6-1722305018403.png

此問題我認為是沒帶入銀存account,所以修改一下參數,加入GLItems 將銀行總帳科目帶入。

viclin_7-1722305068777.png

 

<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中沒有未結項目的管理

viclin_8-1722305137969.png

問題總結:

  • 今年3月/5月/7月, Journal Entry – Clearing (Asynchronous) 這支API於SAP community中陸續都有人發問相關問題,因此想釐清一下,目前這支API的情況。
  • 請問這支API是本來就不支援過帳收款(DZ)結清客戶發票(DR)的嗎? 還是有什麼設定要做? 或使用方式不對?
  • 請問過帳收款(沖帳)是否有其他備案? 如Excel匯入沖帳。 因為供應商發票是可以透過excel匯入的,若過帳收款也可以,也不一定要走API。
  • 因為我們沖帳帳務資料龐大,未來不太可能手動逐筆結清。

SAP Community 相關問題連結:

  • 目前沒看到官方有正式回覆

 

以下補充實際需求,需考慮手續費問題:

  • 113/05/01, 113/05/02 立帳資料如下:
    viclin_9-1722305274570.png
  • 如下圖黃底為沖帳資料,於113/05/06欲將5/1, 5/2部分營收沖銷轉入銀存。
  • 5/1營收沖$704,5/2營收沖$11752
  • 手續費共224+19=243
  • 銀存共11271+942=12213
    viclin_11-1722305315937.pngviclin_12-1722305341619.pngviclin_13-1722305359001.png

     

    viclin_14-1722305373074.png

     

 

View Entire Topic
Cloudsen
Product and Topic Expert
Product and Topic Expert
0 Kudos
您好,
大概需要调用的API和流程是这样的:
Journal Entry - Post (Asynchronous)过账生成挂账AR财务凭证
Journal Entry - Post Confirmation (Asynchronous) 获得生成的财务凭证号
凭证1:
Dr Bank
 Cr AR (行项目2)
Operational Journal Entry Item - Read (A2X) 读取需要清账的AR凭证号和行项目号
凭证2
DR AR (行项目1)
 CR tax
 Cr Revenue
 
Journal Entry – Clearing (Asynchronous)做两个凭证行项目的清账
<APARItems>
<AccountingDocument>凭证2的凭证号</AccountingDocument>
 <AccountingDocumentItem>1</AccountingDocumentItem>
</APARItems>
<APARItems>
<AccountingDocument>凭证1的凭证号</AccountingDocument>
 <AccountingDocumentItem>2</AccountingDocumentItem>
</APARItems>
 
您的payload中只有一个凭证号和行项目
所以提示无法清账,余额过大无法自动更正。
 
Regards,
 
Sen

 

viclin
Explorer
0 Kudos

Dear Sen:

感謝回復,您的意思是這樣嗎?

客戶發票會建立一個日記帳分錄:
應收帳款-庫存現金
            餐飲收入
            銷項稅額

等於SA要再建一個:
銀行存款
           應收帳款-庫存現金

然後透過Clearing api兩個日記帳分錄ID(AccountingDocument)互沖

Cloudsen
Product and Topic Expert
Product and Topic Expert
0 Kudos
是的,两个應收帳款(借方和贷方) 行项目透過Clearing api兩個ID互沖
viclin
Explorer
0 Kudos

Dear Sen:

在新增日記帳分錄中,總帳科目選不到應收帳款科目,請問這個有辦法打開嗎?

viclin_0-1722323387830.png

viclin_1-1722323415566.png

 

Cloudsen
Product and Topic Expert
Product and Topic Expert
0 Kudos
截图上看,输入科目编码在科目描述搜索的。
viclin
Explorer
0 Kudos

Dear Sen:

確實沒有這個科目

viclin_0-1722324062692.png

viclin_1-1722324084709.png

後來發現,看來要透過「過帳收款」的「帳戶過帳」來建分錄:

viclin_0-1722325876914.png

viclin_0-1722325957172.png

後續我透過api沖帳:

viclin_1-1722325992039.png

得到這個錯誤:

viclin_2-1722326016452.png

 

 

viclin
Explorer
0 Kudos

此問題已解決,主要是要先建立DR、DZ日記帳分錄,再用回傳的AccountingDocument來使用Clearing這支API來做互沖。

希望以上補充能幫助其他有困惑的人,也感謝Sen提點!