为什么FF_5不将EBS记录发布到转运器中?

发布于 2025-02-07 06:02:41 字数 9302 浏览 1 评论 0原文

我正在尝试通过TCODE FF_5(电子银行对帐单)作为Swift MT940-国际格式发布文档,并立即发布参数。银行会计发布正常,但是Subledger发布无法正常工作。

调试后,我发现了FM发布文档的信息:'posting_interface_document'。内部返回表-T_BAPIRET2我会收到消息“不存在屏幕saplfcpd 0100的批处理输入”(类型:S,ID:00,NR:344)。当我尝试在没有背景处理的情况下发布此信息时,我必须将客户名称插入此屏幕的字段BSec-name1中,并且发布了良好的信息。

我想自动化此过程。我应该如何将数据传递给FTPOST []或BDCDATA []表以注入有关客户名称的信息?我试图在调试模式下以各种方式进行操作,但它们都不适合我。

示例bdcdata []我创建的记录:

ft-program = 'SAPLFCPD'.
ft-dynpro = '0100'.
ft-dynbegin = 'X'.
APPEND ft.
CLEAR ft.
ft-fname = 'BSEC-NAME1'.
ft-fval = 'TEST'.
APPEND ft.

编辑: 示例银行声明:


:20:MT940
:25:/PL22112110212000180204832110
:28C:56
:60F:C220525PLN89107,30
:61:2205250525D269,98N152NONREF//6450501100324535
152 0
:86:020~00152
~20ZAM.PL111111111, FVKOR/0022
~2111/2205/2401120
~22˙
~23˙
~24˙
~25˙
~3010202964
~310000620200678839
~32CUSTOMER NAME
~33˙
~38PL23102029640000620200678839
~60˙
~63˙
:62F:C220525PLN88837,32
:64:C220525PLN88837,32
-

这是一次性客户端,他没有主数据信息,这就是我要注入它的原因。

我真的很感谢任何帮助。


我添加了一些代码将其作为BDC处理,现在SM35中的条目可用。 代码如下:

ENHANCEMENT 1  ES_BDC_FEBAN.    "active version
  data lv_session TYPE APQI-GROUPID.
  lv_session   = |{ SY-DATUM }{ SY-TIMLO(4) }|.

       DATA: lv_name1 LIKE bsec-name1.
       GET PARAMETER ID 'FEBAN_NAME1' FIELD lv_name1.
       IF lv_name1 IS NOT INITIAL.
         CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
             client              = SY-MANDT         " Client
             group               = LV_SESSION         " Session name
             keep                = 'X'          " Indicator to keep processed sessions
             user                = SY-UNAME     " Batch input user
           EXCEPTIONS
             client_invalid      = 1                " Client is invalid
             destination_invalid = 2                " Target system is invalid/no longer relevant
             group_invalid       = 3                " Batch input session name is invalid
             group_is_locked     = 4                " Batch input session is protected elsewhere
             holddate_invalid    = 5                " Lock date is invalid
             internal_error      = 6                " Internal error of batch input (see SYSLOG)
             queue_error         = 7                " Error reading/writing the queue (see SYSLOG)
             running             = 8                " Session is already being processed
             system_lock_error   = 9                " System error when protecting BI session
             user_invalid        = 10               " BI user is not valid
             others              = 11
           .
         IF SY-SUBRC <> 0.

         ENDIF.

         MODE = 'Q'.

         clear: FUNCT, SGFUNCT.
*          funct = 'B'.
*          SGFUNCT = 'B'.

            ft-program = 'SAPLFCPD'.
            ft-dynpro = '0100'.
            ft-dynbegin = 'X'.
            APPEND ft TO ft[].
            CLEAR: ft-program, ft-dynpro, ft-dynbegin.
            ft-fnam = 'BSEC-NAME1'.
            ft-fval = lv_name1.
            APPEND ft TO ft[].

                  CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          tcode     = tcode
        TABLES
          dynprotab = ft.

       call function 'BDC_CLOSE_GROUP' .

       COMMIT WORK AND WAIT.

       SUBMIT RSBDCSUB EXPORTING LIST TO MEMORY
         WITH mappe    EQ lv_session
         WITH von      EQ sy-datum
         WITH bis      EQ sy-datum
         WITH z_verarb EQ 'X'
         WITH fehler   EQ ''
         WITH logall   EQ 'X'
         AND RETURN.

       ENDIF.

ENDENHANCEMENT.

变量条目: tcode ='fb01' ft []:

<asx:abap version="1.0" xmlns:asx="http://www.sap.com/abapxml"><asx:values><_--5CTYPE_--3D_--25_T00004S00000371O0000147040><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0100</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BLDAT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BLART</FNAM><FVAL>WB</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BUKRS</FNAM><FVAL>1700</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BUDAT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-WAERS</FNAM><FVAL>PLN</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-XBLNR</FNAM><FVAL>PBE01PL41022056</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BKTXT</FNAM><FVAL>0000375800001</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWBS</FNAM><FVAL>40</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWKO</FNAM><FVAL>1232000000</FVAL></item><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0300</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-WRBTR</FNAM><FVAL>269,98</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-VALUT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-ZUONR</FNAM><FVAL>0000375800001PLN</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-SGTXT</FNAM><FVAL>NONREF 020152 ZAM.PL146751217, FVKOR/002211/2205/2</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWBS</FNAM><FVAL>50</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWKO</FNAM><FVAL>1430101010</FVAL></item><item><PROGRAM>SAPLKACB</PROGRAM><DYNPRO>0002</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/00</FVAL></item><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0300</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-WRBTR</FNAM><FVAL>269,98</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-VALUT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-ZUONR</FNAM><FVAL>PL1467512</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-SGTXT</FNAM><FVAL>NONREF 020152 ZAM.PL111111111, FVKOR/002211/2205/2</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/11</FVAL></item><item><PROGRAM>SAPLKACB</PROGRAM><DYNPRO>0002</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/00</FVAL></item><item><PROGRAM>SAPLFCPD</PROGRAM><DYNPRO>0100</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEC-NAME1</FNAM><FVAL>CUSTOMER NAME</FVAL></item></_--5CTYPE_--3D_--25_T00004S00000371O0000147040></asx:values></asx:abap>

数据可能与调试器和银行对帐单略有不同。

SM35中有2个条目,首先是正确处理的,但是第二个条目具有这样的日志条目:

有人可以帮我吗?

I'm trying to post document through tcode FF_5 (electronic bank statements) as SWIFT MT940 - international format, with immediate posting parameter. Bank Accounting Posting works fine, but Subledger posting doesn't work correctly.

After debugging I found information that document is being posted by FM: 'POSTING_INTERFACE_DOCUMENT'. Inside return table - t_bapiret2 I'm getting message "Batch Input for screen SAPLFCPD 0100 does not exist" (Type: S, ID: 00, NR: 344). When I'm trying to post this without background processing I have to insert name of customer into field BSEC-NAME1 of this screen and it posts fine.

I want to automize this process. How should I pass data to ftpost[] or bdcdata[] tables to inject information about Customer Name? I tried to do it in various ways in debugging mode but none of them worked for me.

Sample BDCDATA[] record that I created:

ft-program = 'SAPLFCPD'.
ft-dynpro = '0100'.
ft-dynbegin = 'X'.
APPEND ft.
CLEAR ft.
ft-fname = 'BSEC-NAME1'.
ft-fval = 'TEST'.
APPEND ft.

EDIT:
Sample bank statement:


:20:MT940
:25:/PL22112110212000180204832110
:28C:56
:60F:C220525PLN89107,30
:61:2205250525D269,98N152NONREF//6450501100324535
152 0
:86:020~00152
~20ZAM.PL111111111, FVKOR/0022
~2111/2205/2401120
~22˙
~23˙
~24˙
~25˙
~3010202964
~310000620200678839
~32CUSTOMER NAME
~33˙
~38PL23102029640000620200678839
~60˙
~63˙
:62F:C220525PLN88837,32
:64:C220525PLN88837,32
-

This is one-time Client, he has no master data information that's why I want to inject it.

I would really appreciate any help.


I added some code to process it as BDC, right now entries are available in SM35.
Code looks like this:

ENHANCEMENT 1  ES_BDC_FEBAN.    "active version
  data lv_session TYPE APQI-GROUPID.
  lv_session   = |{ SY-DATUM }{ SY-TIMLO(4) }|.

       DATA: lv_name1 LIKE bsec-name1.
       GET PARAMETER ID 'FEBAN_NAME1' FIELD lv_name1.
       IF lv_name1 IS NOT INITIAL.
         CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
             client              = SY-MANDT         " Client
             group               = LV_SESSION         " Session name
             keep                = 'X'          " Indicator to keep processed sessions
             user                = SY-UNAME     " Batch input user
           EXCEPTIONS
             client_invalid      = 1                " Client is invalid
             destination_invalid = 2                " Target system is invalid/no longer relevant
             group_invalid       = 3                " Batch input session name is invalid
             group_is_locked     = 4                " Batch input session is protected elsewhere
             holddate_invalid    = 5                " Lock date is invalid
             internal_error      = 6                " Internal error of batch input (see SYSLOG)
             queue_error         = 7                " Error reading/writing the queue (see SYSLOG)
             running             = 8                " Session is already being processed
             system_lock_error   = 9                " System error when protecting BI session
             user_invalid        = 10               " BI user is not valid
             others              = 11
           .
         IF SY-SUBRC <> 0.

         ENDIF.

         MODE = 'Q'.

         clear: FUNCT, SGFUNCT.
*          funct = 'B'.
*          SGFUNCT = 'B'.

            ft-program = 'SAPLFCPD'.
            ft-dynpro = '0100'.
            ft-dynbegin = 'X'.
            APPEND ft TO ft[].
            CLEAR: ft-program, ft-dynpro, ft-dynbegin.
            ft-fnam = 'BSEC-NAME1'.
            ft-fval = lv_name1.
            APPEND ft TO ft[].

                  CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          tcode     = tcode
        TABLES
          dynprotab = ft.

       call function 'BDC_CLOSE_GROUP' .

       COMMIT WORK AND WAIT.

       SUBMIT RSBDCSUB EXPORTING LIST TO MEMORY
         WITH mappe    EQ lv_session
         WITH von      EQ sy-datum
         WITH bis      EQ sy-datum
         WITH z_verarb EQ 'X'
         WITH fehler   EQ ''
         WITH logall   EQ 'X'
         AND RETURN.

       ENDIF.

ENDENHANCEMENT.

Variables entries:
Tcode = 'FB01'
FT[]:

<asx:abap version="1.0" xmlns:asx="http://www.sap.com/abapxml"><asx:values><_--5CTYPE_--3D_--25_T00004S00000371O0000147040><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0100</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BLDAT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BLART</FNAM><FVAL>WB</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BUKRS</FNAM><FVAL>1700</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BUDAT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-WAERS</FNAM><FVAL>PLN</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-XBLNR</FNAM><FVAL>PBE01PL41022056</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BKPF-BKTXT</FNAM><FVAL>0000375800001</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWBS</FNAM><FVAL>40</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWKO</FNAM><FVAL>1232000000</FVAL></item><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0300</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-WRBTR</FNAM><FVAL>269,98</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-VALUT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-ZUONR</FNAM><FVAL>0000375800001PLN</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-SGTXT</FNAM><FVAL>NONREF 020152 ZAM.PL146751217, FVKOR/002211/2205/2</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWBS</FNAM><FVAL>50</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>RF05A-NEWKO</FNAM><FVAL>1430101010</FVAL></item><item><PROGRAM>SAPLKACB</PROGRAM><DYNPRO>0002</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/00</FVAL></item><item><PROGRAM>SAPMF05A</PROGRAM><DYNPRO>0300</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-WRBTR</FNAM><FVAL>269,98</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-VALUT</FNAM><FVAL>25.05.2022</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-ZUONR</FNAM><FVAL>PL1467512</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEG-SGTXT</FNAM><FVAL>NONREF 020152 ZAM.PL111111111, FVKOR/002211/2205/2</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_CURSOR</FNAM><FVAL>RF05A-NEWKO</FVAL></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/11</FVAL></item><item><PROGRAM>SAPLKACB</PROGRAM><DYNPRO>0002</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BDC_OKCODE</FNAM><FVAL>/00</FVAL></item><item><PROGRAM>SAPLFCPD</PROGRAM><DYNPRO>0100</DYNPRO><DYNBEGIN>X</DYNBEGIN><FNAM/><FVAL/></item><item><PROGRAM/><DYNPRO>0000</DYNPRO><DYNBEGIN/><FNAM>BSEC-NAME1</FNAM><FVAL>CUSTOMER NAME</FVAL></item></_--5CTYPE_--3D_--25_T00004S00000371O0000147040></asx:values></asx:abap>

Data might looks slightly differently from debugger and bank statement.

There are 2 entries in SM35, first is processed correctly, but 2nd one has log entries like this:
Logs

Can somebody help me please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

坐在坟头思考人生 2025-02-14 06:02:41

您很可能会混淆febanff_5的工作原理。

在SM35中,您将看到FF_5创建的BI会议。 您需要对其进行处理以发布真实的帖子。

我也建议通过febp交易重试失败的发布,这是由hood下的ff_5调用。它的作用与FF_5几乎相同,并使用FF_5数据,但具有重新播放失败记录的能力。

一个有趣的参数febpbk pstg仅“仅发布到g/l”,这可能是由ff_5静静地设置的,这可能会阻止您发布到subledgers。尽管我无法确认这一点,但这只是假设。

ps也建议不要像您一样自动更改自动生成的批处理会话,而不是saplfcpd或任何其他更改。

Most likely you are confusing working principles of FEBAN and FF_5.

In SM35 you will see BI sessions created by FF_5. You need to process them to post real postings.

Also I recommend to retry the failed postings via FEBP transaction, which is called by FF_5 under the hood. It does almost the same as FF_5, and uses FF_5 data, but has the ability to repost the failed records.

The one interesting parameter FEBP has is Bk Pstg Only "Only post to G/L", which may be setting silently by FF_5 which may prevent you to post to subledgers. Though I can't confirm this, it's only assumption.

enter image description here

P.S. Also I recommend to never ever change automatically generated batch sessions like you do, not SAPLFCPD nor any others.

陌若浮生 2025-02-14 06:02:41

问题解决了。我以错误的顺序传递了ft []的记录。
非常有用的事情是将TCODE SHDB用作模拟如何传递记录。在我的情况下,ft []表应包含

SAPMF05A scr. 0100
[... required fields ...] 
SAPLFCPD scr. 0100
BSEC-NAME1   <-- Injected missing field 
SAPMF05A scr. 0300
[... required fields ...]
SAPMF05A SCR. 0301 
[... required fields ... -> SAVE]

主题。谢谢。

Problem solved. I passed records in ft[] in wrong order.
Very usefull thing is using tcode SHDB as simulation how records should be passed. At my case FT[] table should contain

SAPMF05A scr. 0100
[... required fields ...] 
SAPLFCPD scr. 0100
BSEC-NAME1   <-- Injected missing field 
SAPMF05A scr. 0300
[... required fields ...]
SAPMF05A SCR. 0301 
[... required fields ... -> SAVE]

Topic can be closed. Thank you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文