SAP WMS开发: BAPI for LT03

LT03: 基于销售交货单创建转储单TO

BAPI: L_TO_CREATE_DN

代码样例:

TYPES: BEGIN OF lty_tbnum,
           lgnum TYPE lgnum,
           tbnum TYPE tbnum,
         END OF lty_tbnum,

         BEGIN OF lty_vbeln,
           lgnum TYPE lgnum,
           vbeln TYPE lips-vbeln,
         END OF lty_vbeln.

LOOP AT t_zswm262 INTO ls_zswm262.

    IF ls_zswm262-vbeln IS NOT INITIAL.
      ls_vbeln-lgnum = ls_zswm262-lgnum.
      ls_vbeln-vbeln = ls_zswm262-vbeln.
      COLLECT ls_vbeln INTO lt_vbeln.
      CLEAR: ls_vbeln.
    ENDIF.

    CLEAR: ls_zswm262..
  ENDLOOP.


DATA: lt_vbeln     TYPE TABLE OF lty_vbeln,
        ls_vbeln     TYPE lty_vbeln,
        it_delit     TYPE l03b_delit_t,
        ls_delit     TYPE l03b_delit,
        lt_wmgrp_msg TYPE TABLE OF wmgrp_msg,
        lt_ltak      TYPE TABLE OF ltak_vb,
        ls_ltak      TYPE ltak_vb,
        lt_ltap      TYPE TABLE OF ltap_vb,
        ls_ltap      TYPE ltap_vb,
        lv_tanum     TYPE ltak-tanum.

LOOP AT lt_vbeln INTO ls_vbeln.
    CLEAR: it_delit,
           ls_delit,
           lv_tanum,
           lt_ltak,
           ls_ltak,
           lt_ltap,
           ls_ltap,
           lt_wmgrp_msg,
           lt_ltap_conf,
           ls_ltap_conf.

    LOOP AT t_zswm262 INTO ls_zswm262 WHERE vbeln = ls_vbeln-vbeln.
      ls_delit-posnr = ls_zswm262-posnr.
      ls_delit-anfme = ls_zswm262-open_qty. "数量
*      CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
*        EXPORTING
*          input          = ls_zswm262-meins
*          language       = sy-langu
*        IMPORTING
*          output         = ls_zswm262-meins
*        EXCEPTIONS
*          unit_not_found = 1
*          OTHERS         = 2.
*      IF sy-subrc <> 0.
** Implement suitable error handling here
*      ENDIF.

      ls_delit-altme = ls_zswm262-meins. "
      ls_delit-charg = ls_zswm262-charg. "
      ls_delit-vlpla = ls_zswm262-vlpla. "
      ls_delit-vltyp = ls_zswm262-vltyp. "
      APPEND ls_delit TO it_delit.
      CLEAR: ls_delit.

    ENDLOOP.

    CALL FUNCTION 'L_TO_CREATE_DN'
      EXPORTING
        i_lgnum                    = ls_vbeln-lgnum
        i_vbeln                    = ls_vbeln-vbeln
        i_squit                    = 'X'
        i_commit_work              = 'X'
        it_delit                   = it_delit
      IMPORTING
        e_tanum                    = lv_tanum
      TABLES
        t_ltak                     = lt_ltak
        t_ltap_vb                  = lt_ltap
        t_wmgrp_msg                = lt_wmgrp_msg
      EXCEPTIONS
        foreign_lock               = 1
        dn_completed               = 2
        partial_delivery_forbidden = 3
        xfeld_wrong                = 4
        ldest_wrong                = 5
        drukz_wrong                = 6
        dn_wrong                   = 7
        squit_forbidden            = 8
        no_to_created              = 9
        teilk_wrong                = 10
        update_without_commit      = 11
        no_authority               = 12
        no_picking_allowed         = 13
        dn_hu_not_choosable        = 14
        input_error                = 15
        error_message              = 99
        OTHERS                     = 16.
    IF sy-subrc <> 0.

      e_id = sy-msgid.
      e_no = sy-msgno.

      CALL FUNCTION 'MESSAGE_TEXT_BUILD'
        EXPORTING
          msgid               = sy-msgid
          msgnr               = sy-msgno
          msgv1               = sy-msgv1
          msgv2               = sy-msgv2
          msgv3               = sy-msgv3
          msgv4               = sy-msgv4
        IMPORTING
          message_text_output = e_message.
    ELSE.

      e_id = sy-msgid.
      e_no = sy-msgno.

      e_message =   '拣配成功!单号' && lv_tanum .
      e_tanum = lv_tanum.
*部分情况需要再次comfirm
      CLEAR:ls_ltak.
      READ TABLE lt_ltak INTO ls_ltak INDEX 1.
      IF ls_ltak-kquit NE 'X'.
        CALL FUNCTION 'L_TO_CONFIRM'
          EXPORTING
            i_lgnum     = ls_ltak-lgnum
            i_tanum     = lv_tanum
            i_squit     = 'X'
          TABLES
            t_ltap_conf = lt_ltap_conf.

        e_tanum = lv_tanum.
      ENDIF.


    ENDIF.

    CLEAR: ls_vbeln.
  ENDLOOP.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SAPWMS是两种不同的软件系统,它们可以通过接口进行集成和开发SAP是ERP(企业资源计划)软件的代表,可用于管理企业的核心业务流程,如采购、生产、销售和物流等。WMS是仓库管理系统,用于优化和管理仓库内的物流流程。通过将这两个系统集成在一起,企业可以更好地管理其供应链和仓库操作。 接口开发是将不同系统之间的数据和功能进行集成的过程。在SAPWMS的接口开发中,需要确保两个系统之间的数据传输和信息共享的平稳进行。 首先,我们需要定义接口的功能和数据需求。这包括在SAPWMS之间传输的数据对象、数据格式、数据字段等。 然后,我们可以使用适合的技术来实现接口开发。例如,可以使用SAP的IDoc技术或Web服务来传输数据。在WMS系统中,可能需要编写相关的接收和处理数据的逻辑代码。 在开发接口之前,我们还需要进行系统间的配置和对接。这包括在SAP中配置相应的数据导出和导入程序,以及在WMS中配置数据接收和处理的功能。 最后,我们需要进行接口的测试和调试。这可以确保数据的准确性和完整性,以及接口的稳定性和可靠性。 总之,SAPWMS的接口开发是将两个系统集成的关键步骤。通过合理的功能定义、技术选择、系统配置和测试调试,我们可以实现两个系统之间的顺畅数据传输和信息共享,从而提高企业的供应链管理和仓库运营效率。 ### 回答2: SAP是一种企业资源规划系统,WMS是仓库管理系统,它们之间的接口开发是为了实现数据的互通和共享。 SAPWMS之间的接口开发需要根据实际业务需求和系统架构进行设计和开发。首先,需要确定数据交换的方式和格式,在设计接口时需要定义数据的字段和数据类型。其次,需要编写代码来实现数据的传输和转换,以确保数据在两个系统之间的准确性和完整性。最后,需要进行测试和调试,以确保接口的稳定性和可靠性。 在接口开发过程中,需要考虑以下几个方面:首先,需要确定接口的功能和目的,例如实现销售订单的传输、物料库存的同步等。其次,需要连接SAPWMS的系统和数据库,确保数据的一致性和实时性。最后,需要考虑异常情况的处理,如网络中断、数据格式错误等,确保系统的稳定性和可靠性。 通过SAPWMS的接口开发,可以实现以下优势:首先,实现了不同系统之间的数据共享和同步,提高了工作效率和准确性。其次,降低了人工操作的错误率,提高了业务流程的自动化和标准化程度。最后,提供了更多的数据分析和决策支持,帮助企业做出更好的商业决策和优化流程。 综上所述,SAPWMS之间的接口开发是为了实现数据的互通和共享,它能够提高企业的工作效率和准确性,优化业务流程,提供更好的数据分析和决策支持。 ### 回答3: SAP (Systems, Applications and Products)是一套全球知名的企业资源规划软件系统,能够实现企业内各个部门的信息共享和数据管理。WMS (Warehouse Management System)是仓库管理系统,用于管理仓库的各个环节,包括入库、出库、库存管理等。 对于SAPWMS之间的接口开发,主要是将两个系统之间的数据进行交互和同步。由于SAPWMS的数据结构和功能有所不同,需要通过开发接口来实现数据的传输和转换。 接口开发的关键是确定数据交换的方式和内容。可以使用不同的技术和协议,如Web Service、RESTful API等进行数据的传输。在开发过程中,需要的主要步骤包括:确定数据的来源和目标、定义数据的格式和规范、编写数据转换的逻辑和程序、测试和调试接口的功能和性能等。 在SAPWMS之间的接口开发中,需要考虑以下几个方面的内容:首先,确定需要交换的数据,包括入库单、出库单、库存变更等信息;其次,确定数据的传输方式,如实时同步、定时批量等;再次,需要考虑数据的转换和映射,将两个系统的数据进行匹配和转化;最后,需要确保接口的高效和稳定性,保证数据的准确和及时性。 总而言之,SAPWMS之间的接口开发,能够实现两个系统之间的数据同步和共享,提高企业的信息管理和仓库管理效率。通过合理的接口开发,能够更好地实现企业的物流和供应链管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值