xstring ファイルを BDS (ビジネス ドキュメント サービス) にアップロードする Webdynpro の方法を探しています。ほとんどのファイルはバイナリまたは ZIP 形式です。Webdynproのファイルアップロード機能を利用しています。
BDS 機能でファイルを挿入しようとしましたが、BDS にCREATE_WITH_AS_TABLE
ゴミしか保存されませんでした。
誰かがこの小さな問題を解決するのを手伝ってくれますか?
ありがとう
xstring ファイルを BDS (ビジネス ドキュメント サービス) にアップロードする Webdynpro の方法を探しています。ほとんどのファイルはバイナリまたは ZIP 形式です。Webdynproのファイルアップロード機能を利用しています。
BDS 機能でファイルを挿入しようとしましたが、BDS にCREATE_WITH_AS_TABLE
ゴミしか保存されませんでした。
誰かがこの小さな問題を解決するのを手伝ってくれますか?
ありがとう
こんにちは、ご回答ありがとうございます。
この小さな問題の解決策を見つけました。bds システムにファイルを挿入するために xsting をバイナリ形式に変換するのを忘れていました。残念ながら、多くの人が同じ問題を抱えていますが、誰もスニペットを投稿していません.
重要なコードは次のとおりです。
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = im_xstr
IMPORTING
output_length = lv_size
TABLES
binary_tab = lt_data.
私の完全なクラス:
method WD_SAVE_NEW_FILE.
DATA: i_files TYPE sbdst_files,
wa_files LIKE LINE OF i_files,
i_signature TYPE sbdst_signature,
wa_signature LIKE LINE OF i_signature.
* prepare data for FM - COMPONENTS
DATA: i_components TYPE sbdst_components,
wa_components LIKE LINE OF i_components .
wa_components-doc_count = 1.
wa_components-comp_count = 1.
wa_components-comp_id = IM_FILE_NAME.
wa_components-mimetype = IM_FILE_MIME.
APPEND wa_components to i_components.
* set signature to intial = 1
wa_signature-doc_count = 1.
wa_signature-doc_ver_no = 1.
wa_signature-doc_var_id = 1.
wa_signature-doc_var_tg = ''.
wa_signature-comp_count = 1.
wa_signature-prop_name = 'BDS_DOCUMENTCLASS'.
wa_signature-prop_value = ''.
APPEND wa_signature TO i_signature.
CLEAR wa_signature.
wa_signature-doc_count = 1.
wa_signature-doc_ver_no = 1.
wa_signature-doc_var_id = 1.
wa_signature-doc_var_tg = ''.
wa_signature-comp_count = 1.
wa_signature-prop_name = 'DESCRIPTION'.
wa_signature-prop_value = im_file_comment.
APPEND wa_signature TO i_signature.
CLEAR wa_signature.
DATA lt_data TYPE sbdst_content.
DATA lv_size TYPE i.
DATA ls_xstring TYPE XSTRINGVAL.
* Fill ls_xstring
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = im_xstr
IMPORTING
output_length = lv_size
TABLES
binary_tab = lt_data.
CALL METHOD me->o_document_set->create_with_table
EXPORTING
classname = me->i_classname
classtype = me->i_classtype
content = lt_data
components = i_components
CHANGING
object_key = me->i_object_key
signature = i_signature
EXCEPTIONS
nothing_found = 1
parameter_error = 2
not_allowed = 3
error_kpro = 4
internal_error = 5
not_authorized = 6
OTHERS = 7.
CASE sy-subrc.
WHEN 0.
*
WHEN 1.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 2.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 3.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 4.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 5.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN 6.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
WHEN OTHERS.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDCASE.
*return values
endmethod.
このコードが他の Web Dynpro 初心者の役に立てば幸いです。
乾杯ハインリッヒ
この機能を試しましたか?
-BDS_BUSINESSDOCUMENT_CREATEF
また、そのファイルを BDS に保存するには、使用する必要があります
-CL_BDS_DOCUMENT_SET=>CREATE_WITH_TABLE
お役に立てば幸いです。