on 2025 Apr 07 8:49 PM
REPORT zmm_po_adobe_form.
DATA lo_hlp TYPE REF TO if_apoc_or_h_factory_internal.
DATA lo_fp_srv TYPE REF TO if_apoc_somu_form_services.
DATA lo_merge TYPE REF TO if_apoc_document_merge.
DATA lo_util TYPE REF TO if_apoc_utility.
DATA lt_master TYPE if_apoc_common_api=>ty_gt_fdp_parameter.
DATA lt_appl TYPE if_apoc_common_api=>ty_gt_fdp_parameter.
DATA lt_data TYPE if_apoc_logger=>tty_ty_data.
DATA lt_msg TYPE cl_somu_form_services=>ty_gt_message.
DATA lt_msg_all TYPE cl_somu_form_services=>ty_gt_message.
DATA ls_merge_doc TYPE if_apoc_document_merge=>document_object.
DATA ls_symsg TYPE symsg.
DATA lv_mform_cnt_id TYPE apoc_form_master_content_id.
DATA lv_xml_in TYPE xstring.
DATA lv_xml_out TYPE xstring.
DATA lv_xml_out_all TYPE xstring.
DATA lv_appl_multi TYPE boole_d.
DATA lv_appl_key_chg TYPE boole_d.
DATA lv_stop TYPE boole_d.
DATA lv_msg TYPE string.
DATA lv_pdf TYPE boole_d.
DATA lv_pdl_type TYPE apoc_pdl_type.
DATA lv_pq_name TYPE pq_qname.
DATA lv_idx TYPE sytabix.
*DATA ir_or_item TYPE REF TO apoc_s_or_item.
FIELD-SYMBOLS <ls_msg> TYPE cl_somu_form_services=>ty_gs_message.
TYPES:
BEGIN OF ty_gs_fdp_key,
name TYPE string,
value TYPE string,
END OF ty_gs_fdp_key .
TYPES:
ty_gt_fdp_key TYPE STANDARD TABLE OF ty_gs_fdp_key WITH EMPTY KEY .
DATA: ls_master_keys TYPE ty_gt_fdp_key, wa_ls_master_keys TYPE ty_gs_fdp_key.
DATA: ls_appl_keys TYPE ty_gt_fdp_key, wa_ls_appl_keys TYPE ty_gs_fdp_key.
DATA _fcode TYPE t185f-fcode.
DATA(lo_fact_int) = cl_apoc_or_h_factory_internal=>get_helper_factory( ).
DATA(lo_form_util) = lo_fact_int->get_forms_utility( ).
DATA(lo_or_h_util) = lo_fact_int->get_apoc_or_h_utility_instance( ).
DATA(lo_chk_proxy) = lo_fact_int->get_or_check_proxy( cl_apoc_or_check_proxy=>gc_channel_check_item_minimum ).
DATA(lo_log) = lo_fact_int->get_apoc_logger( iv_name = if_apoc_logger=>gc_apoc_main_logger_name ).
DATA(lo_log_audit) = lo_fact_int->get_apoc_logger( iv_name = 'AUDITOR_TRACE' ).
DATA(lo_auth_srv) = lo_fact_int->get_authorization_service( ).
DATA(lo_ch_srv) = lo_fact_int->get_or_item_channel_serv( ).
DATA(lo_at_srv) = lo_fact_int->get_apoc_attachment_service( ).
DATA(lo_doc_fact) = lo_fact_int->get_document_factory( ).
DATA(lo_cfg) = cl_apoc_services_factory=>get_config_instance( ).
DATA eo_message TYPE REF TO /bobf/if_frw_message.
eo_message = lo_fact_int->get_bobf_message( ).
DATA: go_pdf_html_control TYPE REF TO cl_gui_html_viewer,
go_html_container TYPE REF TO cl_gui_custom_container.
PARAMETERS po_nr TYPE ebeln.
PARAMETERS pdf_form TYPE fpwbformname DEFAULT 'MM_PUR_PURCHASE_ORDER'.
PARAMETERS pdf_mfor TYPE apoc_form_master_template_id DEFAULT 'APOC_DEMO_FORM_MASTER_CA'.
wa_ls_master_keys-name = 'PrintFormDerivationRule'.
wa_ls_master_keys-value = 'DCP_PURCHASE_ORDER_01'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'WatermarkText'.
wa_ls_master_keys-value = 'Test Copy'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'LocaleCountry'.
wa_ls_master_keys-value = 'CA'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'LocaleLanguage'.
wa_ls_master_keys-value = 'E'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'OutputControlApplicationObjectType'.
wa_ls_master_keys-value = 'PURCHASE_ORDER'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'OutputControlApplicationObject'.
*wa_ls_master_keys-value = '4500000369'.
wa_ls_master_keys-value = po_nr.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'OutputRequestItem'.
*wa_ls_master_keys-value = '000002'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'OutputDocumentType'.
wa_ls_master_keys-value = 'PURCHASE_ORDER'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'Recipient'.
wa_ls_master_keys-value = ''.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'RecipientRole'.
wa_ls_master_keys-value = ''.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_master_keys-name = 'SenderCountry'.
wa_ls_master_keys-value = 'CA'.
APPEND wa_ls_master_keys TO ls_master_keys.
wa_ls_appl_keys-name = 'PurchaseOrder'.
*wa_ls_appl_keys-value = '4500000369'.
wa_ls_appl_keys-value = po_nr.
APPEND wa_ls_appl_keys TO ls_appl_keys.
wa_ls_appl_keys-name = 'SenderCountry'.
wa_ls_appl_keys-value = 'CA'.
APPEND wa_ls_appl_keys TO ls_appl_keys.
wa_ls_appl_keys-name = 'PurchaseOrderChangeFlag'.
wa_ls_appl_keys-value = ''.
APPEND wa_ls_appl_keys TO ls_appl_keys.
wa_ls_appl_keys-name = 'ReceiverPartnerNumber'.
wa_ls_appl_keys-value = ''.
APPEND wa_ls_appl_keys TO ls_appl_keys.
wa_ls_appl_keys-name = 'Language'.
wa_ls_appl_keys-value = 'E'.
APPEND wa_ls_appl_keys TO ls_appl_keys.
DATA render_options TYPE cl_somu_form_services=>ty_gs_render_options.
render_options-create_pdf = 'X'.
" Render Document
TRY.
lo_hlp = cl_apoc_or_h_factory_internal=>get_helper_factory( ).
" Get form provide services
lo_fp_srv = lo_hlp->get_somu_form_services( ).
lo_fp_srv->get_document(
EXPORTING
* iv_master_form_name = 'ZZ1_DCP_MM_PUR_ORDER_MASTER'
iv_master_form_name = pdf_mfor
* iv_form_name = 'ZZ1_DCP_MM_PUR_PURCHASE_ORDER'
iv_form_name = pdf_form
it_key = ls_appl_keys
* it_filter_select_option = ls_appl-filter_options
it_master_key = ls_master_keys
iv_form_language = 'E'
iv_form_country = 'CA'
is_render_options = render_options
iv_print_queue_name = lv_pq_name
iv_xml = lv_xml_in
iv_disable_cache = 'X'
IMPORTING
ev_content = ls_merge_doc-document_data
ev_pages = ls_merge_doc-pages_count
ev_stop_processing = lv_stop
et_message = lt_msg
ev_xml = lv_xml_out
ev_pdl_type = lv_pdl_type ).
INSERT LINES OF lt_msg INTO TABLE lt_msg_all.
IF ls_merge_doc-document_data IS NOT INITIAL.
CALL SCREEN 0300 STARTING AT 1 1.
ENDIF.
ENDTRY.
*&---------------------------------------------------------------------*
*& Module PBO_SET_STATUS_0300 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE pbo_set_status_0300 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
SET PF-STATUS 'STATUS_0300' EXCLUDING 'DOWN'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module PBO_HTML_CONTROL OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE pbo_html_control OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
PERFORM html_control_pbo.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form html_control_pbo
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM html_control_pbo .
* Container
IF go_html_container IS INITIAL.
CREATE OBJECT go_html_container
EXPORTING
container_name = 'HTML'
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
" MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
ENDIF.
* HTML control
IF go_pdf_html_control IS INITIAL.
CREATE OBJECT go_pdf_html_control
EXPORTING
parent = go_html_container
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
" MESSAGE 'CONTROL ERROR' TYPE 'E'.
ENDIF.
* IF gs_or_item-print_queue_name NE if_apoc_or_c=>gc_download_form_data_xml.
PERFORM html_control_display_pdf.
* ELSE.
* PERFORM html_control_display_xml.
* ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form html_control_display_pdf
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM html_control_display_pdf .
DATA: lv_url TYPE char80,
lv_pdf_data TYPE tsfixml,
lv_pdf_size TYPE i.
* Convert output data to binary format
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = ls_merge_doc-document_data
TABLES
binary_tab = lv_pdf_data.
lv_pdf_size = xstrlen( ls_merge_doc-document_data ).
* Load output data
CALL METHOD go_pdf_html_control->load_data
EXPORTING
url = 'preview.pdf' "#EC NOTEXT
size = lv_pdf_size
type = 'application' "#EC NOTEXT
subtype = 'pdf'
IMPORTING
assigned_url = lv_url
CHANGING
data_table = lv_pdf_data
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE ID 'APOC_OR_UI_MESSAGES'
TYPE 'E'
NUMBER '052'.
ENDIF.
* Show output data
CALL METHOD go_pdf_html_control->show_data
EXPORTING
url = lv_url
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS NOT INITIAL.
MESSAGE ID 'APOC_OR_UI_MESSAGES'
TYPE 'E'
NUMBER '053'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Module PAI_HTML_CONTROL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pai_html_control INPUT.
PERFORM html_control_pai.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form html_control_pai
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM html_control_pai .
CASE _fcode.
WHEN 'GOON' OR 'CANC'.
IF NOT go_pdf_html_control IS INITIAL.
go_pdf_html_control->free( ).
FREE go_pdf_html_control.
ENDIF.
IF NOT go_html_container IS INITIAL.
go_html_container->free( ).
FREE go_html_container.
ENDIF.
LEAVE TO SCREEN 0.
WHEN 'DOWN'.
* PERFORM download_xml.
WHEN OTHERS.
cl_gui_cfw=>dispatch( ).
ENDCASE.
CLEAR _fcode.
ENDFORM.
Request clarification before answering.
| User | Count |
|---|---|
| 17 | |
| 8 | |
| 8 | |
| 6 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.