SD BAPI 留存

*&---------------------------------------------------------------------*
*&  Include           ZINCL_BAPI_SO
*&---------------------------------------------------------------------*
*1.销售订单:
*
*BAPI_SALESORDER_CREATEFROMDAT2 普通销售订单
*SD_SALESDOCUMENT_CREATE 销售订单
*SD_SALESDOCUMENT_CREATE 退货订单
*BAPI_SALESORDER_CHANGE 修改或者删除销售订单
*BAPI_PRICES_CONDITIONS 创建销售价格
*注意:退货订单、借项凭证及贷项凭证(VA01)均不能用BAPI_SALESORDER_CREATEFROMDAT2创建、系统会报错(不允许业务对象 BUS2032 和销售凭证类别 H 的组合),需使用函数SD_SALESDOCUMENT_CREATE
*
*2.交货单:
*
*BAPI_OUTB_DLVVERY_CREATE_SLS 根据销售订单创建交货单
*BAPI_DLVVERYPROCESSING_EXEC 创建内向交货单
*BAPI_OUTB_DLVVERY_READ_SLS 根据销售订单创建交货单,得到交货单创建初始页面所需数据
*BAPI_OUTB_DLVVERY_CHANGE 执行拆分、拣配、交货单修改操作
*BAPI_OUTB_DLVVERY_GETDETAIL 根据交货单号获取单据详细内容
*SD_DLVVERY_UPDATE_PICKING 更改拣配数量
*3.发票:
*
*BAPI_BILLINGDOC_CREATEMULTIPLE 创建发票,注意参数ref_doc_ca
*MB_CANCEL_GOODS_MOVEMENT 冲销交货单的过账发货
*BAPI_BILLINGDOC_CANCEL 发票的冲销
*WS_DLVVERY_UPDATE 交货单发货过账
*注意,每次调用WS_DLVVERY_UPDATE前需要执行以下代码段,否则会出现莫名奇妙的错误。
*CALL FUNCTION ‘RV_DLVVERY_INIT’.
*
*4.客户:
*
*SD_CUSTOMER_MAINTAIN_ALL 创建客户
*table参数中有很多表,其中X打头代表要插入的数据,Y打头代表要删除的数据.
*
*CALL METHOD cl_md_bp_maintain=>maintain 创建、修改、扩充客户主数据


TYPES BEGIN OF TY_SALE,
          VBELN         TYPE  BAPIVBELN-VBELN "
          HEADER        TYPE  BAPISDHD1 "
          HEADERX       TYPE  BAPISDHD1X  "
*         SENDER  TYPE  BDI_LOGSYS  ,"
*         BINARY_RELATIONSHIPTYPE TYPE  BRELTYP-RELTYPE ,"
*         INT_NUMBER_ASSIGNMENT TYPE  BAPIFLAG-BAPIFLAG ,"
*         BEHAVE_WHEN_ERROR TYPE  BAPIFLAG-BAPIFLAG ,"
*         LOGIC_SWITCH  TYPE  BAPISDLS  ,"
*         BUSINESS_OBJECT TYPE  BAPIUSW01-OBJTYPE ,"
          TESTRUN       TYPE  BAPIFLAG-BAPIFLAG "
*         CONVERT_PARVW_AUART TYPE  BAPIFLAG-BAPIFLAG ,"
*         STATUS_BUFFER_REFRESH TYPE  BAPIFLAG-BAPIFLAG ,"

          EXVBELN       TYPE  BAPIVBELN-VBELN "
          HEADER_OUT    TYPE  BAPISDHD  "
          HEADER_STATUS TYPE  BAPISDHDST  "

          ITEM          TYPE TABLE OF BAPISDITM WITH DEFAULT KEY,
          ITEMX         TYPE TABLE OF BAPISDITMX  WITH DEFAULT KEY,
          PARTNERS      TYPE TABLE OF BAPIPARNR WITH DEFAULT KEY,
          SCHEDULES     TYPE TABLE OF BAPISCHDL WITH DEFAULT KEY,
          SCHEDULESX    TYPE TABLE OF BAPISCHDLX  WITH DEFAULT KEY,
          COND          TYPE TABLE OF BAPICOND  WITH DEFAULT KEY,
          CONDX         TYPE TABLE OF BAPICONDX WITH DEFAULT KEY,
*         CFGS_REF  TYPE TABLE OF BAPICUCFG WITH DEFAULT KEY  ,
*         CFGS_INST  TYPE TABLE OF BAPICUINS WITH DEFAULT KEY  ,
*         CFGS_PART_OF  TYPE TABLE OF BAPICUPRT WITH DEFAULT KEY  ,
*         CFGS_VALUE  TYPE TABLE OF BAPICUVAL WITH DEFAULT KEY  ,
*         CFGS_BLOB  TYPE TABLE OF BAPICUBLB WITH DEFAULT KEY  ,
*         CFGS_VK TYPE TABLE OF BAPICUVK  WITH DEFAULT KEY  ,
*         CFGS_REFINST  TYPE TABLE OF BAPICUREF WITH DEFAULT KEY  ,
*         CCARD  TYPE TABLE OF BAPICCARD WITH DEFAULT KEY  ,
*         TEXT  TYPE TABLE OF BAPISDTEXT  WITH DEFAULT KEY  ,
*         KEYS  TYPE TABLE OF BAPISDKEY WITH DEFAULT KEY  ,
*         CONTRACT_IN  TYPE TABLE OF BAPICTR WITH DEFAULT KEY  ,
*         CONTRACT_INX  TYPE TABLE OF BAPICTRX  WITH DEFAULT KEY  ,
          EXTENSION     TYPE TABLE OF BAPIPAREX WITH DEFAULT KEY,
*         PARTNERADDRESSES  TYPE TABLE OF BAPIADDR1 WITH DEFAULT KEY  ,
*         SCHED_CONF_IN TYPE TABLE OF BAPISCHDL2  WITH DEFAULT KEY  ,
*         ITEMS_EX  TYPE TABLE OF BAPISDIT  WITH DEFAULT KEY  ,
*         SCHEDULE_EX TYPE TABLE OF BAPISDHEDU  WITH DEFAULT KEY  ,
*         BUSINESS_EX TYPE TABLE OF BAPISDBUSI  WITH DEFAULT KEY  ,
*         INCOMPLETE_LOG  TYPE TABLE OF BAPIINCOMP  WITH DEFAULT KEY  ,
*         EXTENSIONEX  TYPE TABLE OF BAPIPAREX WITH DEFAULT KEY  ,
*         CONDITIONS_EX TYPE TABLE OF BAPICOND  WITH DEFAULT KEY  ,
*         PARTNERS_EX TYPE TABLE OF BAPISDPART  WITH DEFAULT KEY  ,
*         TEXTHEADERS_EX  TYPE TABLE OF BAPISDTEHD  WITH DEFAULT KEY  ,
*         TEXTLINES_EX  TYPE TABLE OF BAPITEXTLI  WITH DEFAULT KEY  ,
*         BATCH_CHARC  TYPE TABLE OF BAPIBTSEL WITH DEFAULT KEY  ,
*         CAMPAIGN_ASGN TYPE TABLE OF BAPISDCA  WITH DEFAULT KEY  ,
*         CONDITIONS_KONV_EX  TYPE TABLE OF KONV  WITH DEFAULT KEY  ,
*         ETAX  TYPE TABLE OF OI0BAPISDETAX WITH DEFAULT KEY  ,
*         ETAXX TYPE TABLE OF OI0BAPISDETAXX  WITH DEFAULT KEY  ,
*         TRANSP  TYPE TABLE OF OI0BAPISDTRANSP WITH DEFAULT KEY  ,
*         TRANSPX TYPE TABLE OF OI0BAPISDTRANSPX  WITH DEFAULT KEY  ,
        END OF TY_SALE .

TYPES BEGIN OF TY_DLV,
          VBELN      TYPE  BAPISHPDELIVNUMB-DELIV_NUMB,
          VSTEL      TYPE  BAPIDLVCREATEHEADER-SHIP_POINT,
          LEDAT      TYPE  BAPIDLVCREATEHEADER-DUE_DATE,
*        DEBUG_FLG TYPE  BAPIDLVCONTROL-DEBUG_FLG  ,
*        NO_DEQUEUE  TYPE  BAPIFLAG-BAPIFLAG ,

          HEADER     TYPE  BAPIOBDLVHDRCHG,
          HCONTROL   TYPE  BAPIOBDLVHDRCTRLCHG,
          TCONTROL   TYPE  BAPIDLVCONTROL,
*        HEADER_DATA_SPL TYPE  /SPE/BAPIOBDLVHDRCHG,
*        HEADER_CONTROL_SPL  TYPE   /SPE/BAPIOBDLVHDRCTRLCHG,
*        SENDER_SYSTEM TYPE  TBDLS-LOGSYS,


          EXVBELN    TYPE  BAPISHPDELIVNUMB-DELIV_NUMB,
*        NUM_DELIVERIES  TYPE  BAPIDLVCREATEHEADER-NUM_DELIVERIES  ,

          ITEM       TYPE TABLE OF   BAPIDLVREFTOSALESORDER  WITH DEFAULT KEY,
          SERIAL     TYPE TABLE OF   BAPIDLVSERIALNUMBER WITH DEFAULT KEY,
          EXTENSION  TYPE TABLE OF   BAPIPAREX WITH DEFAULT KEY,
*        DELIVERIES  TYPE TABLE OF   BAPISHPDELIVNUMB  WITH DEFAULT KEY  ,
*        CREATED_ITEMS TYPE TABLE OF   BAPIDLVITEMCREATED  WITH DEFAULT KEY  ,
*        EXTENSION_OUT TYPE TABLE OF   BAPIPAREX WITH DEFAULT KEY  ,

*        HEADER_PARTNER  TYPE TABLE OF BAPIDLVPARTNERCHG  WITH DEFAULT KEY  ,
*        HEADER_PARTNER_ADDR  TYPE TABLE OF BAPIDLVPARTNADDRCHG  WITH DEFAULT KEY  ,
*        HEADER_DEADLINES  TYPE TABLE OF BAPIDLVDEADLN  WITH DEFAULT KEY  ,
          ITEMC      TYPE TABLE OF BAPIOBDLVITEMCHG  WITH DEFAULT KEY,
          ICONTROL   TYPE TABLE OF BAPIOBDLVITEMCTRLCHG  WITH DEFAULT KEY,
          SERIALC    TYPE TABLE OF BAPIDLVITMSERNO  WITH DEFAULT KEY,
*        SUPPLIER_CONS_DATA  TYPE TABLE OF BAPIOBDLVITEMSUPCON  WITH DEFAULT KEY  ,
*        EXTENSION1  TYPE TABLE OF BAPIEXTC  WITH DEFAULT KEY  ,
          EXTENSION2 TYPE TABLE OF BAPIEXT  WITH DEFAULT KEY,
*        TOKENREFERENCE  TYPE TABLE OF BAPITOKENREFERENCE  WITH DEFAULT KEY  ,
          ITEMSPL    TYPE TABLE OF /SPE/BAPIOBDLVITEMCHG  WITH DEFAULT KEY,
*        COLLECTIVE_CHANGE_ITEMS  TYPE TABLE OF /SPE/BAPIOBDLVCOLLCHGIR  WITH DEFAULT KEY  ,
*        NEW_ITEM_DATA  TYPE TABLE OF BAPIOBDLVITEM  WITH DEFAULT KEY  ,
*        NEW_ITEM_DATA_SPL  TYPE TABLE OF /SPE/BAPIOBDLVITM  WITH DEFAULT KEY  ,
*        NEW_ITEM_ORG  TYPE TABLE OF BAPIOBDLVITEMORG  WITH DEFAULT KEY  ,
*        ITEM_DATA_DOCU_BATCH  TYPE TABLE OF /SPE/DOCUBATCH_DLV_ITEM_STY  WITH DEFAULT KEY  ,
*        CWM_ITEM_DATA  TYPE TABLE OF /CWM/BAPIOBDLVITEM  WITH DEFAULT KEY  ,
          """"""""""""""""""""""""""""""""""''
          VBKOK      TYPE VBKOK,
          PICKING    TYPE CHAR01,
          VBPOK      TYPE TABLE OF VBPOK  WITH DEFAULT KEY,

          """""""""""""""""""""""""
          LIKP       TYPE LIKP,
          MKPF       TYPE EMKPF,
          MESG       TYPE TABLE OF MESG WITH DEFAULT KEY,

        END OF TY_DLV.
TYPES BEGIN OF TY_BILL,
*        CREATORDATAIN TYPE  BAPICREATORDATA ,
          TESTRUN TYPE  BAPIVBRKTESTRUN-TESTRUN,
*        POSTING TYPE  POSTING_TYPE_CT,
          VBELN   TYPE VBELN_VF,

*        EXT_REF_DOC TYPE  BAPIVBRK-REF_DOC ,

          ITEM    TYPE TABLE OF BAPIVBRK  WITH DEFAULT KEY,
*        CONDITIONDATAIN TYPE TABLE OF BAPIKOMV  WITH DEFAULT KEY  ,
*        CCARDDATAIN TYPE TABLE OF BAPICCARD_VF  WITH DEFAULT KEY  ,
*        TEXTDATAIN  TYPE TABLE OF BAPIKOMFKTX WITH DEFAULT KEY  ,
*        ERRORS  TYPE TABLE OF BAPIVBRKERRORS  WITH DEFAULT KEY  ,
*        RETURN  TYPE TABLE OF BAPIRET1  WITH DEFAULT KEY  ,
          SUCCESS TYPE TABLE OF BAPIVBRKSUCCESS WITH DEFAULT KEY,
*        NFMETALLITMS  TYPE TABLE OF /NFM/BAPIDOCITM WITH DEFAULT KEY  ,
        END OF TY_BILL.
TYPES BEGIN OF TY_SOEXTENSION,
          VALUEPART1 TYPE  VALUEPART,
          VALUEPART2 TYPE  VALUEPART,
          VALUEPART3 TYPE  VALUEPART,
          VALUEPART4 TYPE  VALUEPART,
        END OF TY_SOEXTENSION .

DATA GS_SALE TYPE TY_SALE .
DATA GS_DLV TYPE TY_DLV .
DATA GS_BILL TYPE TY_BILL .

*DATA LT_RETURN TYPE BAPIRET2_TAB.
*PERFORM FRM_INITIAL_SALES .
*PERFORM FRM_SALESORDER_CREATE USING LT_RETURN .
*PERFORM FRM_SALESORDER_CHANGE USING LT_RETURN .
*PERFORM FRM_DLVVERY_CREATE    USING LT_RETURN .
*PERFORM FRM_DLVVERY_CHANGE    USING LT_RETURN .
*PERFORM FRM_DLVVERY_POST      USING LT_RETURN .
*PERFORM FRM_BILLINGDOC_CREATE USING LT_RETURN .
*PERFORM FRM_BILLINGDOC_CANCEL USING LT_RETURN .
*&---------------------------------------------------------------------*
*&      Form  FRM_INITIAL_SALES
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_INITIAL_SALES .
  FREE GS_SALE .
  FREE GS_DLV  .
  FREE GS_BILL .
ENDFORM.                    " FRM_INITIAL_SALES


*&---------------------------------------------------------------------*
*&      创建销售订单
*&---------------------------------------------------------------------*
*      perform frm_SALESORDER_create USING lt_return ."va01
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_SALESORDER_CREATE  USING  IT_RETURN TYPE BAPIRET2_TAB.
  FREE IT_RETURN .
*  增强字段
*  更新抬头:VBAK, BAPE_VBAK, BAPE_VBAKX, VBAKKOZ and VBAKKOZX.
*
*更新行项目:VBAP, BAPE_VBAP, BAPE_VBAPX, VBAPKOZ and VBAPKOZX.
*
*更新运货计划:VBEP, BAPE_VBEP, BAPE_VBEP,
*VBEPKOZ and VBEPKOZX
*VBAPKOZ VBAPKOZX 必须具有相同顺序相同数量的字段
*使用字段类型CHAR1而不是BAPIUPDATE,因为BAPIUPDATE在BAPI_SALESDOCUMENT_CHANGE不起作用
*  抬头的价格条件不用传货币单位 行项目必须传货币单位
  CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
    EXPORTING
      SALESDOCUMENT        = GS_SALE-VBELN
      SALES_HEADER_IN      = GS_SALE-HEADER
      SALES_HEADER_INX     = GS_SALE-HEADERX
*     SENDER               = GS_SALE-SENDER
*     BINARY_RELATIONSHIPTYPE  = GS_SALE-BINARY_RELATIONSHIPTYPE
*     INT_NUMBER_ASSIGNMENT  = GS_SALE-INT_NUMBER_ASSIGNMENT
*     BEHAVE_WHEN_ERROR    = GS_SALE-BEHAVE_WHEN_ERROR
*     LOGIC_SWITCH         = GS_SALE-LOGIC_SWITCH
*     BUSINESS_OBJECT      = GS_SALE-BUSINESS_OBJECT
*     TESTRUN              = GS_SALE-TESTRUN
*     CONVERT_PARVW_AUART  = GS_SALE-CONVERT_PARVW_AUART
*     STATUS_BUFFER_REFRESH  = GS_SALE-STATUS_BUFFER_REFRESH
    IMPORTING
      SALESDOCUMENT_EX     = GS_SALE-EXVBELN
*     SALES_HEADER_OUT     = GS_SALE-HEADER_OUT
*     SALES_HEADER_STATUS  = GS_SALE-HEADER_STATUS
    TABLES
      SALES_ITEMS_IN       = GS_SALE-ITEM
      SALES_ITEMS_INX      = GS_SALE-ITEMX
      SALES_PARTNERS       = GS_SALE-PARTNERS
      SALES_SCHEDULES_IN   = GS_SALE-SCHEDULES
      SALES_SCHEDULES_INX  = GS_SALE-SCHEDULESX
      SALES_CONDITIONS_IN  = GS_SALE-COND
      SALES_CONDITIONS_INX = GS_SALE-CONDX
*     SALES_CFGS_REF       = GS_SALE-CFGS_REF
*     SALES_CFGS_INST      = GS_SALE-CFGS_INST
*     SALES_CFGS_PART_OF   = GS_SALE-CFGS_PART_OF
*     SALES_CFGS_VALUE     = GS_SALE-CFGS_VALUE
*     SALES_CFGS_BLOB      = GS_SALE-CFGS_BLOB
*     SALES_CFGS_VK        = GS_SALE-CFGS_VK
*     SALES_CFGS_REFINST   = GS_SALE-CFGS_REFINST
*     SALES_CCARD          = GS_SALE-CCARD
*     SALES_TEXT           = GS_SALE-TEXT
*     SALES_KEYS           = GS_SALE-KEYS
*     SALES_CONTRACT_IN    = GS_SALE-CONTRACT_IN
*     SALES_CONTRACT_INX   = GS_SALE-CONTRACT_INX
      EXTENSIONIN          = GS_SALE-EXTENSION
*     PARTNERADDRESSES     = GS_SALE-PARTNERADDRESSES
*     SALES_SCHED_CONF_IN  = GS_SALE-SCHED_CONF_IN
*     ITEMS_EX             = GS_SALE-ITEMS_EX
*     SCHEDULE_EX          = GS_SALE-SCHEDULE_EX
*     BUSINESS_EX          = GS_SALE-BUSINESS_EX
*     INCOMPLETE_LOG       = GS_SALE-INCOMPLETE_LOG
*     EXTENSIONEX          = GS_SALE-EXTENSIONEX
*     CONDITIONS_EX        = GS_SALE-CONDITIONS_EX
*     PARTNERS_EX          = GS_SALE-PARTNERS_EX
*     TEXTHEADERS_EX       = GS_SALE-TEXTHEADERS_EX
*     TEXTLINES_EX         = GS_SALE-TEXTLINES_EX
*     BATCH_CHARC          = GS_SALE-BATCH_CHARC
*     CAMPAIGN_ASGN        = GS_SALE-CAMPAIGN_ASGN
*     CONDITIONS_KONV_EX   = GS_SALE-CONDITIONS_KONV_EX
*     SALES_ETAX           = GS_SALE-ETAX
*     SALES_ETAX           = GS_SALE-ETAXX
*     SALES_TRANSP         = GS_SALE-TRANSP
*     SALES_TRANSPX        = GS_SALE-TRANSPX
      RETURN               = IT_RETURN.
ENDFORM.                    " FRM_SALESORDER_CREATE
*&---------------------------------------------------------------------*
*&      Form  更改销售订单
*&---------------------------------------------------------------------*
*       text
*PERFORM FRM_SALESORDER_CHANGE USING LT_RETURN . "va02
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_SALESORDER_CHANGE  USING  IT_RETURN TYPE BAPIRET2_TAB .
  FREE IT_RETURN .
  CALL FUNCTION 'SD_SALESDOCUMENT_CHANGE'
    EXPORTING
      SALESDOCUMENT       = GS_SALE-VBELN
      ORDER_HEADER_IN     = GS_SALE-HEADER
      ORDER_HEADER_INX    = GS_SALE-HEADERX
*     SIMULATION          = ' '
*     INT_NUMBER_ASSIGNMENT       = ' '
*     BEHAVE_WHEN_ERROR   = ' '
*     BUSINESS_OBJECT     = ' '
*     CONVERT_PARVW_AUART = ' '
*     CALL_FROM_BAPI      = ' '
*     LOGIC_SWITCH        =
*     I_CRM_LOCK_MODE     = ' '
*     NO_STATUS_BUF_INIT  = ' '    
IMPORTING      SALES_HEADER_OUT    
= GS_SALE-HEADER_OUT      SALES_HEADER_STATUS 
= GS_SALE-HEADER_STATUS    
TABLES      ITEM_IN             
= GS_SALE-ITEM      ITEM_INX            
= GS_SALE-ITEMX      SCHEDULE_IN         
= GS_SALE-SCHEDULES      SCHEDULE_INX        
= GS_SALE-SCHEDULESX
*     PARTNERS            =
*     PARTNERCHANGES      =
*     PARTNERADDRESSES    =
*     CFGS_REF            =
*     CFGS_INST           =
*     CFGS_PART_OF        =
*     CFGS_VALUE          =
*     CFGS_BLOB           =
*     CFGS_VK             =
*     CFGS_REFINST        =
*     CCARD               =
*     TEXT                =
*     KEYS                =      CONDITIONS_IN       
= GS_SALE-COND      CONDITIONS_INX      
= GS_SALE-CONDX
*     SALES_CONTRACT_IN   = GS_SALE-CONTRACT_IN
*     SALES_CONTRACT_INX  = GS_SALE-CONTRACT_INX      EXTENSIONIN         
= GS_SALE-EXTENSION
*     ITEMS_EX            =
*     SCHEDULE_EX         = GS_SALE-SCHEDULE_EX
*     BUSINESS_EX         =
*     INCOMPLETE_LOG      =
*     EXTENSIONEX         =
*     CONDITIONS_EX       =
*     SCHED_CONF_IN       =
*     DEL_SCHEDULE_EX     =
*     DEL_SCHEDULE_IN     =
*     DEL_SCHEDULE_INX    =
*     CORR_CUMQTY_IN      =
*     CORR_CUMQTY_INX     =
*     CORR_CUMQTY_EX      =
*     PARTNERS_EX         =
*     TEXTHEADERS_EX      =
*     TEXTLINES_EX        =
*     BATCH_CHARC         =
*     CAMPAIGN_ASGN       =
*     CONDITIONS_KONV_EX  =      
RETURN              = IT_RETURN.
ENDFORM.                    " FRM_SALESORDER_CHANGE
*&---------------------------------------------------------------------*
*& Form FRM_SALESORDER_APPROVE
*&---------------------------------------------------------------------*
*& text 销售订单审批
*&---------------------------------------------------------------------*
*&      --> LS_VBAK_OBJNR
*&      --> P_
*&      --> <LFS_HEAD>_TYPE
*&      --> LT_RETURN
*&---------------------------------------------------------------------*
FORM FRM_SALESORDER_APPROVE  USING IV_OBJNR TYPE J_OBJNR                                   iv_STAT 
type j_STATUS                                   ev_type 
type any
clear ev_type .

CALL FUNCTION 'STATUS_CHANGE_EXTERN'  
EXPORTING
*   CHECK_ONLY                = ' '
*   CLIENT                    = SY-MANDT    OBJNR                     
= IV_OBJNR    USER_STATUS               
= iv_STAT " 'E0002'审批完成 'E0001' 未审批
*   SET_INACT                 = ' '
*   SET_CHGKZ                 =
*   NO_CHECK                  = ' '
* IMPORTING
*   STONR                     = 
EXCEPTIONS   OBJECT_NOT_FOUND          
1   STATUS_INCONSISTENT       
2   STATUS_NOT_ALLOWED        
3   
OTHERS                    4          
.
IF SY-SUBRC EQ 0.
* Implement suitable error handling here  ev_type 
'S' .
ELSE .  ev_type 
'E'.
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_DLVVERY_CREATE
*&---------------------------------------------------------------------*
*       创建销售交货单
*PERFORM FRM_DLVVERY_CREATE   USING LT_RETURN . "vl02n
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_DLVVERY_CREATE  USING IT_RETURN TYPE BAPIRET2_TAB  .  
FREE IT_RETURN .  
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'    
EXPORTING      SHIP_POINT        
= GS_DLV-VSTEL      DUE_DATE          
= GS_DLV-LEDAT
*     DEBUG_FLG         = GS_DLV-DEBUG_FLG
*     NO_DEQUEUE        = GS_DLV-NO_DEQUEUE    
IMPORTING      DELIVERY          
= GS_DLV-EXVBELN
*     NUM_DELIVERIES    = GS_DLV-NUM_DELIVERIES    
TABLES      SALES_ORDER_ITEMS 
= GS_DLV-ITEM      SERIAL_NUMBERS    
= GS_DLV-SERIAL      EXTENSION_IN      
= GS_DLV-EXTENSION
*     DELIVERIES        = GS_DLV-DELIVERIES
*     CREATED_ITEMS     = GS_DLV-CREATED_ITEMS
*     EXTENSION_OUT     = GS_DLV-EXTENSION_OUT      
RETURN            = IT_RETURN.
ENDFORM.                    " FRM_DLVVERY_CREATE
*&---------------------------------------------------------------------*
*&      Form  FRM_DLVVERY_CHANGE
*&---------------------------------------------------------------------*
*       text执行拆分、拣配、交货单修改操作
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_DLVVERY_CHANGE  USING  IT_RETURN TYPE BAPIRET2_TAB.  
FREE IT_RETURN .  
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'    
EXPORTING      HEADER_DATA    
= GS_DLV-HEADER      HEADER_CONTROL 
= GS_DLV-HCONTROL      DELIVERY       
= GS_DLV-VBELN      TECHN_CONTROL  
= GS_DLV-TCONTROL
*     HEADER_DATA_SPL         = GS_DLV-HEADER_DATA_SPL
*     HEADER_CONTROL_SPL      = GS_DLV-HEADER_CONTROL_SPL
*     SENDER_SYSTEM  = GS_DLV-SENDER_SYSTEM    
TABLES
*     HEADER_PARTNER = GS_DLV-HEADER_PARTNER
*     HEADER_PARTNER_ADDR     = GS_DLV-HEADER_PARTNER_ADDR
*     HEADER_DEADLINES        = GS_DLV-HEADER_DEADLINES      ITEM_DATA      
= GS_DLV-ITEMC      ITEM_CONTROL   
= GS_DLV-ICONTROL      ITEM_SERIAL_NO 
= GS_DLV-SERIALC
*     SUPPLIER_CONS_DATA      = GS_DLV-SUPPLIER_CONS_DATA
*     EXTENSION1     = GS_DLV-EXTENSION1      EXTENSION2     
= GS_DLV-EXTENSION2
*     TOKENREFERENCE = GS_DLV-TOKENREFERENCE      ITEM_DATA_SPL  
= GS_DLV-ITEMSPL
*     COLLECTIVE_CHANGE_ITEMS = GS_DLV-COLLECTIVE_CHANGE_ITEMS
*     NEW_ITEM_DATA  = GS_DLV-NEW_ITEM_DATA
*     NEW_ITEM_DATA_SPL       = GS_DLV-NEW_ITEM_DATA_SPL
*     NEW_ITEM_ORG   = GS_DLV-NEW_ITEM_ORG
*     ITEM_DATA_DOCU_BATCH    = GS_DLV-ITEM_DATA_DOCU_BATCH      
RETURN         = IT_RETURN.


ENDFORM.                    " FRM_DLVVERY_CHANGE
*&---------------------------------------------------------------------*
*&      Form  FRM_DLVVERY_POST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_DLVVERY_POST  USING  IT_RETURN TYPE BAPIRET2_TAB.  
DATA LO_ROOT TYPE REF TO CX_ROOT .  
DATA LT_PROT  TYPE TABLE OF  PROTT .  
DATA LS_PROT  TYPE PROTT  .  
DATA LS_RETURN TYPE BAPIRET2 .  

DATA LV_ERROR_ANY TYPE .  
DATA LV_ERROR_IN_ITEM_DELETION TYPE .  
DATA LV_ERROR_IN_POD_UPDATE TYPE .  
DATA LV_ERROR_IN_INTERFACE TYPE .  
DATA LV_ERROR_IN_GOODS_ISSUE TYPE .  
DATA LV_ERROR_IN_FINAL_CHECK TYPE .  
DATA LV_ERROR_PARTNER_UPDATE TYPE .  
DATA LV_ERROR_SERNR_UPDATE TYPE .


** vbkok_wa-vbeln_vl = t_created-document_numb.
** vbkok_wa-wabuc = 'X'."发货过账
*  CALL FUNCTION ‘RV_DELIVERY_INIT’. "必须执行这段 否则会出现不知名错误


*  ls_vbkok-vbeln_vl     = iv_vbeln .
*  ls_vbkok-wabuc        = 'X'.     "  <- 当前公司过账
*  ls_vbkok-spe_auto_gr  = 'X'. "<-跨公司收获过账
*  LOOP AT it_lips INTO DATA(ls_lips) .
*    APPEND INITIAL LINE TO lt_vbpok ASSIGNING FIELD-SYMBOL(<lfs_vbpok>) .
*    <lfs_vbpok>-vbeln_vl = ls_lips-vbeln_vl .
*    <lfs_vbpok>-posnr_vl = ls_lips-posnr_vl .
*    IF ls_lips-lgort IS NOT INITIAL .
*      <lfs_vbpok>-lgort    =  ls_lips-lgort. "库位
*    ELSE .
*      <lfs_vbpok>-lgort  = '9001' ."给默认值
*    ENDIF .
*    <lfs_vbpok>-lgpla    =  ls_lips-lgort. "
*    <lfs_vbpok>-kzlgo    =  'X'.
*    <lfs_vbpok>-xwmpp    =  'X'.
*  ENDLOOP .  

FREE IT_RETURN .  
TRY .
*    每次调用WS_DELIVERY_UPDATE前需要执行以下代码段,否则会出现莫名奇妙的错误
*    CALL FUNCTION ‘RV_DELIVERY_INIT’.      
CALL FUNCTION 'RV_DELIVERY_INIT'
*     EXPORTING
*       STATUS_BUFF_INIT       =
*       TEXT_MEMORY_INIT       = ' '
*       PP_DELIVERY            = ' '
*       I_CALL_ACTIVITY        = ' '
*       IF_NO_DEQUE            = ' '        
.      

CALL FUNCTION 'WS_DELIVERY_UPDATE'        
EXPORTING          VBKOK_WA                    
= GS_DLV-VBKOK
*         SYNCHRON                    = ' '
*         NO_MESSAGES_UPDATE          = ' '
*         COMMIT                      = ' '          DELIVERY                    
= GS_DLV-VBKOK-VBELN_VL          UPDATE_PICKING              
= GS_DLV-PICKING
*         NICHT_SPERREN               = ' '
*         IF_CONFIRM_CENTRAL          = ' '
*         IF_WMPP                     = ' '
*         IF_GET_DELIVERY_BUFFERED    = ' '
*         IF_NO_GENERIC_SYSTEM_SERVICE       = ' '
*         IF_DATABASE_UPDATE          = '1'
*         IF_NO_INIT                  = ' '
*         IF_NO_READ                  = ' '
*         IF_ERROR_MESSAGES_SEND_0    = 'X'
*         IF_NO_BUFFER_REFRESH        = ' '
*         IT_PARTNER_UPDATE           =
*         IT_SERNR_UPDATE             =
*         IF_NO_REMOTE_CHG            = ' '
*         IF_NO_MES_UPD_PACK          = ' '
*         IF_LATE_DELIVERY_UPD        = ' '        
IMPORTING          EF_ERROR_ANY_0              
= LV_ERROR_ANY          EF_ERROR_IN_ITEM_DELETION_0 
= LV_ERROR_IN_ITEM_DELETION          EF_ERROR_IN_POD_UPDATE_0    
= LV_ERROR_IN_POD_UPDATE          EF_ERROR_IN_INTERFACE_0     
= LV_ERROR_IN_INTERFACE          EF_ERROR_IN_GOODS_ISSUE_0   
= LV_ERROR_IN_GOODS_ISSUE          EF_ERROR_IN_FINAL_CHECK_0   
= LV_ERROR_IN_FINAL_CHECK          EF_ERROR_PARTNER_UPDATE     
= LV_ERROR_PARTNER_UPDATE          EF_ERROR_SERNR_UPDATE       
= LV_ERROR_SERNR_UPDATE        
TABLES          VBPOK_TAB                   
= GS_DLV-VBPOK          PROT                        
= LT_PROT
*         VERKO_TAB                   =
*         VERPO_TAB                   =
*         VBSUPCON_TAB                =
*         IT_VERPO_SERNR              =
*         IT_PACKING                  =
*         IT_PACKING_SERNR            =
*         IT_REPACK                   =
*         IT_HANDLING_UNITS           =
*         IT_OBJECTS                  =
*         ET_CREATED_HUS              =
*         TVPOD_TAB                   =
*         IT_TMSTMP                   =
*         IT_BAPIADDR1                =
*         IT_TEXTL                    =
*         IT_TEXTH                    =
*         IT_AAC_ITEM_BLOCK           =
*         IT_HU_HEADER_EPC            =
*         IT_HU_ITEMS_EPC             =        
EXCEPTIONS          ERROR_MESSAGE               
1.    
CATCH CX_ROOT INTO LO_ROOT .  
ENDTRY.  
IF SY-SUBRC NE .    LS_RETURN
-TYPE = SY-MSGTY .    LS_RETURN
-ID = SY-MSGID .    LS_RETURN
-NUMBER = SY-MSGNO .    
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO      
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4      
INTO LS_RETURN-MESSAGE.    LS_RETURN
-MESSAGE_V1 = SY-MSGV1 .    LS_RETURN
-MESSAGE_V2 = SY-MSGV2 .    LS_RETURN
-MESSAGE_V3 = SY-MSGV3 .    LS_RETURN
-MESSAGE_V4 = SY-MSGV4 .    
APPEND LS_RETURN TO IT_RETURN .    
CLEAR LS_RETURN.  
ENDIF .  

LOOP AT LT_PROT INTO LS_PROT .    LS_RETURN
-TYPE = LS_PROT-MSGTY .    LS_RETURN
-ID = LS_PROT-MSGID .    LS_RETURN
-NUMBER = LS_PROT-MSGNO .    
MESSAGE ID LS_PROT-MSGID TYPE LS_PROT-MSGTY NUMBER LS_PROT-MSGNO       
WITH LS_PROT-MSGV1 LS_PROT-MSGV2 LS_PROT-MSGV3 LS_PROT-MSGV4       
INTO LS_RETURN-MESSAGE.    LS_RETURN
-MESSAGE_V1 = LS_PROT-MSGV1 .    LS_RETURN
-MESSAGE_V2 = LS_PROT-MSGV2 .    LS_RETURN
-MESSAGE_V3 = LS_PROT-MSGV3 .    LS_RETURN
-MESSAGE_V4 = LS_PROT-MSGV4 .    
APPEND LS_RETURN TO IT_RETURN .    
CLEAR LS_RETURN.  
ENDLOOP .
ENDFORM.                    " FRM_DLVVERY_POST
*&---------------------------------------------------------------------*
*&      Form  FRM_REPOST_DELIVERY
*&---------------------------------------------------------------------*
*       冲销发货过账
*----------------------------------------------------------------------*
*      -->P_LS_INTERFACE_USSOR  text
*----------------------------------------------------------------------*
FORM FRM_DELIVERY_REVERSE USING IV_VBELN TYPE VBELN_VL                                IS_RETURN 
TYPE BAPIRET2.  
DATA LV_TCODE TYPE SY-TCODE .  
DATA LS_LIKP TYPE LIKP .  
DATA LS_MKPF TYPE EMKPF .  
DATA LS_RETURN TYPE BAPIRET2 .  
DATA LT_MESG TYPE TABLE OF MESG .

*  *注意 如果是同一个程序(也就是过账后马上需要冲销的
*  请用FRM_DELIVERY_REVERSE2 否则冲销会失败的)  

SELECT SINGLE * INTO CORRESPONDING FIELDS OF LS_LIKP FROM LIKP   
WHERE VBELN EQ IV_VBELN .  
CHECK SY-SUBRC EQ .  LV_TCODE 
'VL09'.  
CALL FUNCTION 'WS_REVERSE_GOODS_ISSUE'    
EXPORTING      I_VBELN                   
= LS_LIKP-VBELN      I_BUDAT                   
= LS_LIKP-WADAT_IST      I_TCODE                   
= LV_TCODE      I_VBTYP                   
= LS_LIKP-VBTYP    
IMPORTING      ES_EMKPF                  
= LS_MKPF    
TABLES      T_MESG                    
= LT_MESG    
EXCEPTIONS      ERROR_REVERSE_GOODS_ISSUE 
1      ERROR_MESSAGE             
2      
OTHERS                    3.  
IF LS_MKPF IS NOT INITIAL .     LS_RETURN
-TYPE 'S' .    
COMMIT WORK AND WAIT .  
ELSE .
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.    LS_RETURN
-TYPE 'E' .    LS_RETURN
-ID = SY-MSGID .    LS_RETURN
-NUMBER = SY-MSGNO .    
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO       
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4       
INTO LS_RETURN-MESSAGE.    LS_RETURN
-MESSAGE_V1 = SY-MSGV1 .    LS_RETURN
-MESSAGE_V2 = SY-MSGV2 .    LS_RETURN
-MESSAGE_V3 = SY-MSGV3 .    LS_RETURN
-MESSAGE_V4 = SY-MSGV4 .    
ROLLBACK WORK .  
ENDIF .  
MOVE-CORRESPONDING LS_RETURN TO IS_RETURN .
ENDFORM.                    " FRM_REPOST_DELIVERY
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""'
FORM FRM_DELIVERY_REVERSE2 USING   IV_VBELN TYPE VBELN_VL                                  IT_RETURN 
TYPE BAPIRET2_TAB.  
DATA LS_RETURN TYPE BAPIRET2 .  
CHECK IV_VBELN  IS NOT INITIAL .
*直接运行 WS_REVERSE_GOODS_ISSUE  当联动创建时候 冲销会不成功  
SUBMIT  ZTEL_SD002 WITH P_VBELN = IV_VBELN "ZTEL_SD002 在下面代码                     
AND RETURN.  

IMPORT  LS_RETURN FROM MEMORY ID 'REPOST_VBELN_VL'.  
IF LS_RETURN IS NOT INITIAL .    
APPEND LS_RETURN TO IT_RETURN .    
CLEAR LS_RETURN .  
ENDIF .  
FREE MEMORY ID  'REPOST_VBELN_VL' .

ENDFORM.

*REPORT  ZTEL_SD002.
*PARAMETERS P_VBELN TYPE VBELN_VL .
*INITIALIZATION.
*START-OF-SELECTION.
*  DATA LV_TCODE TYPE SY-TCODE .
*  DATA LS_LIKP TYPE LIKP .
*  DATA LS_MKPF TYPE EMKPF .
*  DATA LS_RETURN TYPE BAPIRET2 .
*  DATA LT_MESG TYPE TABLE OF MESG .
*
*  SELECT SINGLE * INTO CORRESPONDING FIELDS OF LS_LIKP FROM LIKP
*    WHERE VBELN EQ P_VBELN .
*  CHECK SY-SUBRC EQ 0 .
*  LV_TCODE = 'VL09'.
*  CALL FUNCTION 'WS_REVERSE_GOODS_ISSUE'
*    EXPORTING
*      I_VBELN                         = LS_LIKP-VBELN
*      I_BUDAT                         = LS_LIKP-WADAT_IST
*      I_TCODE                         = LV_TCODE
*      I_VBTYP                         = LS_LIKP-VBTYP
*   IMPORTING
*      ES_EMKPF                        = LS_MKPF
*    TABLES
*      T_MESG                         = LT_MESG
*   EXCEPTIONS
*     ERROR_REVERSE_GOODS_ISSUE       = 1
*     ERROR_MESSAGE                   = 2
*     OTHERS                          = 3
*            .
*  if LS_MKPF is not initial .
*    clear LS_RETURN .
*    commit WORK AND WAIT .
*  else .
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
**         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*    LS_RETURN-TYPE = 'E' .
*    LS_RETURN-ID = SY-MSGID .
*    LS_RETURN-NUMBER = SY-MSGNO .
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*       WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
*       INTO LS_RETURN-MESSAGE.
*    LS_RETURN-MESSAGE_V1 = SY-MSGV1 .
*    LS_RETURN-MESSAGE_V2 = SY-MSGV2 .
*    LS_RETURN-MESSAGE_V3 = SY-MSGV3 .
*    LS_RETURN-MESSAGE_V4 = SY-MSGV4 .
*    ROLLBACK WORK .
*endif .
*EXPORT LS_RETURN TO MEMORY ID 'VBELN_VL'.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
*&---------------------------------------------------------------------*
*&      Form  FRM_DELIVERY_REPOST_BDC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_DELIVERY_REPOST_BDC  USING IV_VBELN TYPE VBELN_VL                                   IT_RETURN 
TYPE BAPIRET2_TAB  .
*  DATA LS_BDCMSG TYPE BDCMSGCOLL .
*  DATA LS_RETURN TYPE BAPIRET2 .
*
*  FREE IT_RETURN .
*  CHECK IV_VBELN IS NOT INITIAL .
*  PERFORM FRM_BDC_INIT .
*  PERFORM FRM_BDC_DEFAULT USING 'N' 'S' CHANGING GS_BDCPARAMS .
*
*  PERFORM FRM_DYNPRO USING GT_BDCDATA 'RVV50L09' '1000'  'X' .
*  PERFORM FRM_DYNPRO USING GT_BDCDATA '' 'BDC_OKCODE'  '=ONLI' .
*  PERFORM FRM_DYNPRO USING GT_BDCDATA '' 'I_VBELN-LOW'  IV_VBELN .
*  PERFORM FRM_DYNPRO USING GT_BDCDATA '' 'LF_ANAUS'  'X'.
*  PERFORM FRM_CALL_BDC   USING  'VL09' GT_BDCDATA GS_BDCPARAMS GT_BDCMSG .
*  LOOP AT GT_BDCMSG INTO LS_BDCMSG .
*    LS_RETURN-TYPE = LS_BDCMSG-MSGTYP .
*    LS_RETURN-ID = LS_BDCMSG-MSGID.
*    LS_RETURN-NUMBER = LS_BDCMSG-MSGNR .
*    MESSAGE ID LS_BDCMSG-MSGID TYPE LS_BDCMSG-MSGTYP NUMBER LS_BDCMSG-MSGNR
*       WITH LS_BDCMSG-MSGV1 LS_BDCMSG-MSGV2 LS_BDCMSG-MSGV3 LS_BDCMSG-MSGV4
*       INTO LS_RETURN-MESSAGE.
*    LS_RETURN-MESSAGE_V1 = LS_BDCMSG-MSGV1 .
*    LS_RETURN-MESSAGE_V2 = LS_BDCMSG-MSGV2 .
*    LS_RETURN-MESSAGE_V3 = LS_BDCMSG-MSGV3 .
*    LS_RETURN-MESSAGE_V4 = LS_BDCMSG-MSGV4 .
*    APPEND LS_RETURN TO IT_RETURN .
*    CLEAR LS_RETURN.
*  ENDLOOP .

ENDFORM.                    " FRM_DELIVERY_REPOST_BDC

*&---------------------------------------------------------------------*
*&      Form  FRM_BILLINGDOC_CREATE 创建销售发票
*&---------------------------------------------------------------------*
*      PERFORM FRM_BILLINGDOC_CREATE   USING LT_RETURN ."vf01
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_BILLINGDOC_CREATE  USING IT_RETURN TYPE BAPIRET2_TAB  .  
FREE IT_RETURN .  
CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'    
EXPORTING
*     CREATORDATAIN = GS_BILL-CREATORDATAIN      TESTRUN       
= GS_BILL-TESTRUN
*     POSTING       = GS_BILL-POSTING    
TABLES      BILLINGDATAIN 
= GS_BILL-ITEM
*     CONDITIONDATAIN = GS_BILL-CONDITIONDATAIN
*     CCARDDATAIN   = GS_BILL-CCARDDATAIN
*     TEXTDATAIN    = GS_BILL-TEXTDATAIN
*     ERRORS        = GS_BILL-ERRORS      SUCCESS       
= GS_BILL-SUCCESS      
RETURN        = IT_RETURN.
ENDFORM.                    " FRM_BILLINGDOC_CREATE
*&---------------------------------------------------------------------*
*&      Form  FRM_BILLINGDOC_CANCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_LT_RETURN  text
*----------------------------------------------------------------------*
FORM FRM_BILLINGDOC_CANCEL  USING IT_RETURN TYPE  BAPIRET2_TAB.  
DATA LT_RETURN TYPE  TAB_BAPIRET1.  
DATA LS_BAPIRETURN TYPE BAPIRETURN1 .  
DATA LS_RETURN TYPE BAPIRET2 .  

FREE IT_RETURN .  
CALL FUNCTION 'BAPI_BILLINGDOC_CANCEL1'    
EXPORTING      BILLINGDOCUMENT 
= GS_BILL-VBELN    
TABLES      SUCCESS         
= GS_BILL-SUCCESS      
RETURN          = LT_RETURN.  
LOOP AT LT_RETURN INTO LS_BAPIRETURN .    
MOVE-CORRESPONDING LS_BAPIRETURN TO LS_RETURN .    
APPEND LS_RETURN TO IT_RETURN .    
CLEAR  LS_RETURN .  
ENDLOOP .
ENDFORM.                    " FRM_BILLINGDOC_CANCEL

posted on   Shadow.Ling  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示