将文件的XSTRING值转换为二进制文件以存储在存档服务器中

2020-08-14 12:18发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个要求,我必须在Fiori应用程序中上传文件,然后使用Odata服务将其存储在存档服务器(Dolphin)中。 在* DPC_EXT类的CREATE_STREAM方法的is_media_resource-value字段中,我正在获取文件的XSTRING值。 我正在尝试使用FM SCMS_XSTRING_TO_BINARY将其转换为二进制表,然后将其传递到标准ArchiveLink FM ARCHIVOBJECT_CREATE_TABLE以将其存储在存档服务器中并获取存档doc ID,以便可以使用ARCHIV_CONNECTION_INSERT将其链接到销售订单对象。 但是在将二进制输出传递到ARCHIVOBJECT_CREATE_TABLE时遇到了以下运行时错误:

CALL_FUNCTION_CONFLICT_LENG

CREATE_STREAM方法中的代码段:

数据:lv_obj_id TYPE saeobjid,
         ls_key_tab类型/iwbep/s_mgw_name_value_pair,
         lv_mimetype TYPE TOADD-DOC_TYPE,
         lv_filename TYPE TOAAT-FILENAME,
 *带有标头行的tooom类型表,
         lv_arc_doc_id类型为toav0-arc_doc_id,
         it_content TYPE solix_tab,
         lv_app TYPE字符串,
         lv_length TYPE字符串。
   案例iv_entity_set_name。
     当" BusinessDocSet"。
 *读取表it_​​key_tab并使用KEY name ='ObjKey'进入ls_key_tab。
 *如果sy-subrc = 0。
 * lv_obj_id = ls_key_tab-value。
 *      万一。
 * SPLIT is_media_resource-mime_type AT'/'INTO lv_app lv_mimetype。
       分割iv_slug AT'/'INTO lv_obj_id lv_filename。
 * lv_filename = iv_slug。
       通话功能'SCMS_XSTRING_TO_BINARY'
         出口
           缓冲区= is_media_resource-value" xstring
           append_to_table ='X'
         桌子
           binary_tab = it_content。  "二进制。

       通话功能" ARCHIVOBJECT_CREATE_TABLE"
         出口
           ARCHIV_ID ='D1'
           DOCUMENT_TYPE ='PDF'
 *长度=
 * COMPID ='数据'
 *签名='X'
 * VSCAN_PROFILE ='/SCMS/KPRO_CREATE'
         输入
           ARCHIV_DOC_ID = lv_arc_doc_id
         桌子
 * ARCHIVOBJECT =
 *组件=
           BINARCHIVOBJECT = it_content
         例外情况
           ERROR_ARCHIV = 1
           ERROR_COMMUNICATIONTABLE = 2
           ERROR_KERNEL = 3
           BLOCKED_BY_POLICY = 4
           其他= 5。

       通话功能" ARCHIV_CONNECTION_INSERT"
         出口
           archiv_id ='D1'
           arc_doc_id = lv_arc_doc_id
           ar_date = sy-datum
           ar_object ='ZB2BSOPDF'
           object_id = lv_obj_id
           sap_object ='BUS2032'
           descr = lv_filename
           创建者= sy-uname
         例外情况
           error_connectiontable = 1
           其他= 2。

       如果SY-SUBRC <> 0。
 *在这里实施适当的错误处理
       万一。

   结束。
 

(57.7 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个要求,我必须在Fiori应用程序中上传文件,然后使用Odata服务将其存储在存档服务器(Dolphin)中。 在* DPC_EXT类的CREATE_STREAM方法的is_media_resource-value字段中,我正在获取文件的XSTRING值。 我正在尝试使用FM SCMS_XSTRING_TO_BINARY将其转换为二进制表,然后将其传递到标准ArchiveLink FM ARCHIVOBJECT_CREATE_TABLE以将其存储在存档服务器中并获取存档doc ID,以便可以使用ARCHIV_CONNECTION_INSERT将其链接到销售订单对象。 但是在将二进制输出传递到ARCHIVOBJECT_CREATE_TABLE时遇到了以下运行时错误:

CALL_FUNCTION_CONFLICT_LENG

CREATE_STREAM方法中的代码段:

数据:lv_obj_id TYPE saeobjid,
         ls_key_tab类型/iwbep/s_mgw_name_value_pair,
         lv_mimetype TYPE TOADD-DOC_TYPE,
         lv_filename TYPE TOAAT-FILENAME,
 *带有标头行的tooom类型表,
         lv_arc_doc_id类型为toav0-arc_doc_id,
         it_content TYPE solix_tab,
         lv_app TYPE字符串,
         lv_length TYPE字符串。
   案例iv_entity_set_name。
     当" BusinessDocSet"。
 *读取表it_​​key_tab并使用KEY name ='ObjKey'进入ls_key_tab。
 *如果sy-subrc = 0。
 * lv_obj_id = ls_key_tab-value。
 *      万一。
 * SPLIT is_media_resource-mime_type AT'/'INTO lv_app lv_mimetype。
       分割iv_slug AT'/'INTO lv_obj_id lv_filename。
 * lv_filename = iv_slug。
       通话功能'SCMS_XSTRING_TO_BINARY'
         出口
           缓冲区= is_media_resource-value" xstring
           append_to_table ='X'
         桌子
           binary_tab = it_content。  "二进制。

       通话功能" ARCHIVOBJECT_CREATE_TABLE"
         出口
           ARCHIV_ID ='D1'
           DOCUMENT_TYPE ='PDF'
 *长度=
 * COMPID ='数据'
 *签名='X'
 * VSCAN_PROFILE ='/SCMS/KPRO_CREATE'
         输入
           ARCHIV_DOC_ID = lv_arc_doc_id
         桌子
 * ARCHIVOBJECT =
 *组件=
           BINARCHIVOBJECT = it_content
         例外情况
           ERROR_ARCHIV = 1
           ERROR_COMMUNICATIONTABLE = 2
           ERROR_KERNEL = 3
           BLOCKED_BY_POLICY = 4
           其他= 5。

       通话功能" ARCHIV_CONNECTION_INSERT"
         出口
           archiv_id ='D1'
           arc_doc_id = lv_arc_doc_id
           ar_date = sy-datum
           ar_object ='ZB2BSOPDF'
           object_id = lv_obj_id
           sap_object ='BUS2032'
           descr = lv_filename
           创建者= sy-uname
         例外情况
           error_connectiontable = 1
           其他= 2。

       如果SY-SUBRC <> 0。
 *在这里实施适当的错误处理
       万一。

   结束。
 

(57.7 kB)
付费偷看设置
发送
1条回答
Haoba3210
1楼-- · 2020-08-14 13:09

简单的错误表声明。

对于BINARCHIVOBJECT结构TBL1024可选

一周热门 更多>