PLM->SAP 冻结(解冻)物料主数据同步接口

12 篇文章 0 订阅
10 篇文章 0 订阅

物料冻结解冻接口,比较简单

接口搭建

功能实现

FUNCTION zfm_plm_002.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(INPUT) TYPE  ZSTPLM_002_INPUT
*"  EXPORTING
*"     VALUE(OUTPUT) TYPE  ZSTPLM_002_OUTPUT
*"----------------------------------------------------------------------

*--init
  PERFORM frm_init USING 'ZFM_PLM_002'.

*--json in
  gv_json_in = zcl_common=>abap_to_json( input ).

*--if active check
  PERFORM frm_check_active USING gc_i.

  IF gv_active EQ abap_true.

*--input check
    IF input[] IS INITIAL.

      APPEND VALUE #( code = 'E' msg = '输入数据为空,请检查!') TO output.

    ELSE.

      PERFORM frm_material_pur_status_chg TABLES input output.

    ENDIF.

  ELSE.

    PERFORM frm_002_ret_e TABLES input output.

  ENDIF.

*--json out
  gv_json_out = zcl_common=>abap_to_json( output ).

*--set log
  PERFORM frm_set_log USING gc_i.

ENDFUNCTION.

核心逻辑

 


*&---------------------------------------------------------------------*
*& Form FRM_MATERIAL_PUR_STATUS_CHG
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> INPUT
*&      --> OUTPUT
*&---------------------------------------------------------------------*
FORM frm_material_pur_status_chg  TABLES   pt_input  TYPE zstplm_002_input
                                           pt_output TYPE zstplm_002_output.

  LOOP AT pt_input.

    gv_matnr = |{ pt_input-matnr ALPHA = IN }|.

    SELECT SINGLE * FROM mara INTO @DATA(ls_mara) WHERE matnr EQ @gv_matnr.

    "set head
    DATA(ls_head) = VALUE bapimathead( material   = gv_matnr
                                       matl_type  = ls_mara-mtart
                                       ind_sector = ls_mara-mbrsh
                                      ).

    IF sy-subrc NE 0.
      APPEND VALUE #( matnr = pt_input-matnr
                      code  = gc_e
                      msg   = '该物料不存在,请检查' )  TO pt_output .
      gv_type = gc_e.
      CONTINUE.
    ENDIF.

    "set clientdata
    DATA(ls_clientdata)  = VALUE bapi_mara(  pur_status = COND #( WHEN pt_input-flag EQ 'Y' THEN space ELSE '04' ) ).

    "set clientdataxs
    DATA(ls_clientdatax) = VALUE bapi_marax(  pur_status = abap_true ).

    CLEAR:gs_return.

    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata    = ls_head
        clientdata  = ls_clientdata
        clientdatax = ls_clientdatax
      IMPORTING
        return      = gs_return.

    zcl_common=>bapi_commit( gs_return-type ).

    APPEND VALUE #( matnr = pt_input-matnr
                    code  = gs_return-type
                    msg   = COND #( WHEN gs_return-type = gc_s THEN COND #( WHEN pt_input-flag EQ 'Y' THEN '物料启用' ELSE '物料冻结' ) && '成功'
                                                               ELSE COND #( WHEN pt_input-flag EQ 'Y' THEN '物料启用' ELSE '物料冻结' ) && ':' && gs_return-message   )
                   )  TO pt_output .

    IF gv_type NE gc_e.
      gv_type = COND #( WHEN gs_return-type NE gc_s THEN gc_e ELSE gc_s ).
    ENDIF.

  ENDLOOP.

ENDFORM.

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PLM(产品生命周期管理)和SAP(企业资源计划)是两个常用的企业管理系统,它们在不同的领域有不同的应用。接口设计是将这两个系统连接起来,实现数据的交换和共享。 在PLMSAP接口设计中,首先需要确定需要交换的数据类型和内容。可以考虑的数据包括产品设计和规格、物料清单、工艺路线、质量控制和检验等。 接口设计的第二步是确定数据交换的方式和格式。可以选择直接通过API(应用程序接口)或者通过数据文件的方式进行数据交换。接口的设计需要考虑到数据的安全性、准确性和及时性。 接口设计的第三步是实现和测试。在实现阶段,需要开发适配器或者中间件来连接PLMSAP系统,并定义相应的接口数据映射规则。在测试阶段,需要进行功能测试、性能测试和稳定性测试,确保接口的正常运行和数据的准确传输。 最后,接口设计需要考虑到系统的维护和升级。随着业务的发展和需求的变化,接口的设计可能需要进行调整和优化。同时,需要定期检查接口的运行状况,确保系统的稳定性和数据的一致性。 综上所述,PLMSAP接口设计是将两个系统连接起来,实现数据的交换和共享的过程。通过合理的数据类型选择、数据交换方式和格式的确定、接口的实现和测试以及系统的维护和升级,可以实现PLMSAP系统之间的高效协同工作,提升企业的管理效率和竞争力。 ### 回答2: PLM(Product Lifecycle Management,产品生命周期管理)是一种综合性的管理方法,用于管理产品从概念到退役的整个生命周期。而SAP是一种企业资源计划(ERP)软件,用于整合和管理企业的各种业务流程和数据。 针对PLMSAP之间的接口设计,要是为了实现PLMSAP之间的数据共享和互操作。接口设计涉及到数据的传递和同步问题,可以通过以下几个方面的设计来实现: 1. 数据映射与转换:PLMSAP之间的数据模型可能有所不同,需要设计接口来进行数据映射和转换,确保数据在两个系统之间的正确传递。 2. 数据传输方式:根据需求和系统架构,可以选择不同的数据传输方式,例如基于文件传输、Web服务或API调用等方式。 3. 数据安全性和完整性:数据在传输和接收过程中需要确保安全和完整性,可以通过加密、身份验证、数据校验等方式来保证。 4. 事务一致性:由于PLMSAP可能涉及到不同的业务流程和操作,需要确保在数据传递过程中的事务一致性,避免数据不一致或冲突的问题。 5. 异常处理和日志记录:设计接口时需要考虑异常情况的处理,例如网络中断或数据错误等,同时需要记录相关日志,方便排查和追踪问题。 综上所述,PLMSAP接口设计是为了实现两个系统之间的数据交互和共享,需要考虑数据映射、传输方式、数据安全性、一致性、异常处理等方面的设计。通过合理的接口设计,可以实现PLMSAP系统的有效集成,提升企业的生产效率和管理水平。 ### 回答3: PLM(产品生命周期管理)和SAP(企业资源计划)之间的接口设计是为了实现两者之间的数据交互和集成。PLM系统负责管理和追踪产品从设计到生产直到退役的全生命周期,而SAP系统则管理企业的资源和业务流程。 在PLMSAP之间建立接口的目的是为了确保产品数据的一致性和准确性,同时实现流程的自动化和优化。接口设计需要考虑以下几个方面: 1. 数据同步PLMSAP之间需要实现数据的双向同步,确保产品数据在两个系统中的一致性。例如,当在PLM中设计了新产品时,需要将相关数据(如物料清单、工艺路线等)传输到SAP系统中,以便进行生产计划和物料采购。 2. 流程集成:PLMSAP的工作流程需要进行集成,以实现业务流程的自动化和优化。例如,在PLM系统中进行产品变更时,相关的工艺变更和质量控制流程需要自动触发,并同步更新到SAP系统中,以确保生产过程的准确性和效率。 3. 错误处理和验证:在数据传输过程中,可能会出现错误或不一致的情况。接口设计需要包含错误处理和数据验证的机制,以确保数据的准确性和完整性。例如,当传输过程中出现错误时,需要能够及时发现和修复问题,并确保数据的正确传输。 4. 安全性和权限管理:由于PLMSAP系统都包含敏感业务数据接口设计需要考虑安全性和权限管理的问题。只有经过授权的用户才能进行数据的传输和访问,并且需要确保数据的机密性和完整性。 综上所述,PLMSAP之间的接口设计是为了实现两者之间的数据交互和流程集成,以提高产品生命周期管理和企业资源计划的效率和准确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值