单据状态和关联单据的状态获取
SRM的各种状态,都可以通过BBP_GET_status获取当前的最新的状态,输出的是唯一值(有效的状态),传入的仅需要 目标类型和GUID
还有一个函数,可以获取所有关联的单据号
CALL FUNCTION ‘BBP_PD_OBJ_REL_HEADER_READ’
EXPORTING
IV_GUID = IV_GUID
IV_OBJECT_TYPE = IV_OBJECT_TYPE
-
IV_LOGICAL_SYSTEM =
-
IV_MAX_HOPS = TABLES ET_HEADER_REL = LT_HEADER_REL
通过这个函数,可以找到所有关联的后续单据,比如询价单,关联的报价单、价格协议(采购合同),采购订单以及各个单据的状态。
------------------------------------------------------
附上一个函数的模式
FUNCTION ZFM_GET_CONNECT.
*"----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*" VALUE(IV_GUID) TYPE BBP_GUID
*" VALUE(IV_OBJECT_TYPE) TYPE CRMT_SUBOBJECT_CATEGORY_DB
*" TABLES
*" ET_REL STRUCTURE ZSRM_CONNECT_S
*"----------------------------------------------------------------------
DATA :LT_HEADER_REL TYPE TABLE OF BBP_PDS_HREL ,
LW_HEADER_REL LIKE LINE OF LT_HEADER_REL ,
LT_REL TYPE TABLE OF ZSRM_CONNECT_S WITH HEADER LINE ,
LT_REL_H TYPE TABLE OF ZSRM_CONNECT_S WITH HEADER LINE ,
LT_REL_T TYPE TABLE OF ZSRM_CONNECT_S WITH HEADER LINE .
*DATA: lv_guid TYPE CRMT_OBJECT_GUID .
CALL FUNCTION 'BBP_PD_OBJ_REL_HEADER_READ'
EXPORTING
IV_GUID = IV_GUID
IV_OBJECT_TYPE = IV_OBJECT_TYPE
-
IV_LOGICAL_SYSTEM =
-
IV_MAX_HOPS = TABLES ET_HEADER_REL = LT_HEADER_REL . LOOP AT LT_HEADER_REL INTO LW_HEADER_REL. LT_REL-GUID = LW_HEADER_REL-GUID_B . LT_REL-OBJECT_TYPE = LW_HEADER_REL-OBJTYPE_B . APPEND LT_REL . CLEAR: LT_REL , LW_HEADER_REL . ENDLOOP. IF LT_REL[] IS INITIAL . RETURN . ENDIF. SELECT GUID OBJECT_ID INTO CORRESPONDING FIELDS OF TABLE LT_REL_H FROM CRMD_ORDERADM_H FOR ALL ENTRIES IN LT_REL WHERE GUID = LT_REL-GUID . SORT LT_REL_H by guid . SORT LT_REL by guid . LOOP AT LT_REL . READ TABLE LT_REL_H WITH KEY guid = LT_REL-guid BINARY SEARCH . IF sy-subrc = 0 . LT_REL-OBJECT_ID = LT_REL_H-OBJECT_ID . ENDIF. IF LT_REL-guid IS NOT INITIAL . CALL FUNCTION 'ZFM_GET_STATUS' EXPORTING OBJECT_TYPE = LT_REL-OBJECT_TYPE GUID = LT_REL-guid IMPORTING PO_STAT = LT_REL-STAT PO_ZTEXT = LT_REL-STATTXT . ENDIF.
-
IF LT_REL-OBJECT_TYPE = 'BUS2000113 ' AND l_index = 1 .
-
l_index = l_index + 1 .
** delete LT_REL .
** lv_guid = LT_REL-guid .
-
CALL FUNCTION 'ZFM_GET_CONNECT'
-
EXPORTING
-
IV_GUID = LT_REL-guid
-
IV_OBJECT_TYPE = 'BUS2000113'
-
TABLES
-
ET_REL = LT_REL_T
-
.
-
APPEND LINES OF LT_REL_T TO ET_REL .
-
CLEAR:LT_REL_T,LT_REL_T[] .
** CONTINUE .
-
ENDIF. MODIFY LT_REL . CLEAR :LT_REL_H,LT_REL . ENDLOOP. APPEND LINES OF LT_REL TO ET_REL . CLEAR:LT_REL ,LT_REL[] . SORT ET_REL by guid . delete ADJACENT DUPLICATES FROM ET_REL COMPARING guid .
ENDFUNCTION.
FUNCTION ZFM_GET_STATUS.
*"----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*" REFERENCE(OBJECT_TYPE) TYPE CRMT_SUBOBJECT_CATEGORY_DB
*" REFERENCE(GUID) TYPE CRMT_OBJECT_GUID
*" EXPORTING
*" REFERENCE(PO_STAT) TYPE CRM_J_STATUS
*" REFERENCE(PO_ZTEXT) TYPE J_TXT30
*"----------------------------------------------------------------------
DATA: ls_status TYPE BBP_PDS_STATUS_DESC .
CALL FUNCTION ‘BBP_GET_STATUS’
EXPORTING
IV_GUID = GUID
IV_OBJECT_TYPE = OBJECT_TYPE
IMPORTING
ES_STATUS = ls_status
- CHANGING
- ET_MESSAGES =
.
po_stat = ls_status-STATUS_ID.
PO_ZTEXT = ls_status-STATUS_DESCR.
ENDFUNCTION.