Digital Signature In Adobe Forms_fiori

  • Uploaded by: Adaikalam Alexander Rayappa
  • 0
  • 0
  • March 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Digital Signature In Adobe Forms_fiori as PDF for free.

More details

  • Words: 1,077
  • Pages: 11
Loading documents preview...
Digital Signature in Adobe Forms Add to favorites February 11, 2014 UI SAP Interactive Forms by Adobe

This blog will help in creating a digitally signed Adobe Form. With digital signatures getting a nod in many countries, a lot of organizations are looking up to digital signatures to save the time spent on a redundant task such as, signing the hard copy. By using digital signatures, a soft copy can be digitally signed and secured. I have used, ABAP to design the form. The reason of using SFP transaction is, easier integration of form and interface with various other platforms, that is not easily ans seamlessly possible with WD JAVA. The following steps need to be verified by the basis team for digital signature to be active in the system. 1. Uploading a digital signature in the system 2. Create connection between ADS (Adobe Document Services) and R/3 system – It is recommended to name the connection, “ADS_HTTPS” The following steps will create an Adobe for with digital signature. Go to transaction SFP

Give the interface, you want to design, a name. The interface is that part, in which we write the logic for pulling data from the tables. Click on create.

Maintain the data to be used in the form under Global Data. Both input and output elements can be used here. We need to define the name and the type.

Go to Code initialization. Here we write the logic of extracting the data from the tables. Here we need to define the Input & Output parameters. The Input / Output parameters are the ones, defined in Global Data. Here we don’t need to define the Type. Note: The name used in The Input / Output parameters should be the same that is used in Global Data.

Once the code is written in the interface, save it and go back to Form (Transaction SFP) Give the form a name and create the form. In the form properties, provide the name of the interface which the form will call.

In the context, bind the global data with the form context. This can be done by simple drag and drop.

Click on layout, to design the form. Design the form and bind the UIs with the data available in the data view. After form design, insert the signature field in the form.

Once the form has been designed and the digital signature field has been incorporated in the form, the code for digitally signing the form will be written in the RFC that will call the form. We’ll have to define the HTTP Connection, the position of the Digital Signature UI and the name of the digital signature in the form. Following is the code that we need to write to define the above mentioned fields. TYPE RFCDEST VALUE ‘ADS_HTTPS’, // The name of connection

P_DEST

TYPE C VALUE ‘data.#subform[0].END.SIGNATURE.SignatureField1’, // The

S_FIELD(100)

position of digital signature FORM_NAME = ‘ZMM_V2V_RATE’. // The form RFC needs to call S_ALSIGN = ‘Umang_Test’ . // Name of Digital Signature Following is the code that needs to be written for digitally signing the form. FORM_NAME = ‘ZMM_V2V_RATE’. S_ALSIGN = ‘Umang_Test’. GS_FPOUTPARAMS–NODIALOG = ‘X’. GS_FPDOCPARAMS–FILLABLE = ‘X’. CALL FUNCTION ‘FP_JOB_OPEN’ CHANGING IE_OUTPUTPARAMS = GS_FPOUTPARAMS EXCEPTIONS CANCEL

=1

USAGE_ERROR

=2

SYSTEM_ERROR

=3

INTERNAL_ERROR

=4

OTHERS

= 5.

IF SY–SUBRC <> 0. ENDIF. TRY. CALL FUNCTION ‘FP_FUNCTION_MODULE_NAME’ EXPORTING I_NAME

= FORM_NAME

IMPORTING E_FUNCNAME = GV_FMNAME. CATCH CX_ROOT INTO LV_W_CX_ROOT. LV_MESG = LV_W_CX_ROOT->GET_TEXT( ). ENDTRY.

CLEAR: FORMOUTPUT. CALL METHOD L_PDFOBJ->SET_DOCUMENT EXPORTING PDFDATA = FORMOUTPUT–PDF.

CALL METHOD L_PDFOBJ->SET_SIGNATURE EXPORTING KEYNAME

= S_ALSIGN

FIELDNAME = S_FIELD. CLEAR: L_OUT. CALL METHOD L_PDFOBJ->EXECUTE( ). L_PDFOBJ->SET_USAGERIGHTS( DEFAULT_RIGHTS = C_FALSE ). CALL METHOD L_PDFOBJ->GET_DOCUMENT IMPORTING PDFDATA = L_OUT. CALL FUNCTION ‘SCMS_XSTRING_TO_BINARY’ EXPORTING = L_OUT

BUFFER

* APPEND_TO_TABLE

=‘‘

* IMPORTING * OUTPUT_LENGTH

=

TABLES BINARY_TAB

= BINARY_CONTENT.

* ENDLOOP. CALL FUNCTION ‘FP_JOB_CLOSE’ EXCEPTIONS USAGE_ERROR SYSTEM_ERROR

=1 =2

INTERNAL_ERROR = 3 OTHERS

= 4.

The above mentioned code will digitally sign the document.

Digital Signature in SAP FIORI How to save the Digital Signature in SAP.

This code helps to DeCode the BASE64 format which FIORI applications sends, this needs to converted to BINARY format and further to be used as per the requirement. Some times the Image you get is Black but it might not be the mistake at SAP end while sending the time the background in getting black from UI end. Its better or advised to save the data in the Z table and then it can be retrieved. You can create the a field OF DATA TYPE RAWSTRING. Below example sign field is created with datatype RAWSTRING using predefined type. *”———————————————————————*”*”Local Interface: *” IMPORTING *” REFERENCE(IV_INPUT) TYPE STRING OPTIONAL *” REFERENCE(IV_NAME) TYPE STXBITMAPS-TDNAME OPTIONAL *” REFERENCE(IV_DEL) TYPE CHAR01 OPTIONAL *” EXPORTING *” REFERENCE(EV_RETURN) TYPE CHAR01 *”———————————————————————TYPES: BEGIN OF lty_bitmap, l(64) TYPE x, END OF lty_bitmap. DATA: lo_conv_x2c TYPE REF TO cl_abap_conv_in_ce, base64_string TYPE string, base64_xstring TYPE xstring, lv_size TYPE i, lt_content TYPE TABLE OF lty_bitmap, ” sdokcntbin. ls_dsign TYPE zfcs_sign_update. CONSTANTS : lc_filename TYPE rlgrap-filename VALUE ”, lc_object TYPE stxbitmaps-tdobject VALUE ‘GRAPHICS’, lc_id TYPE stxbitmaps-tdid VALUE ‘BMAP’, lc_btype TYPE stxbitmaps-tdbtype VALUE ‘BMON’, lc_extension TYPE char03 VALUE ‘BMP’, lc_title LIKE bapisignat-prop_value VALUE ”, lc_resident TYPE stxbitmaps-resident VALUE ”, lc_autoheight TYPE stxbitmaps-autoheight VALUE ‘X’, lc_bmcomp TYPE stxbitmaps-bmcomp VALUE ‘X’.

DATA: lv_docid TYPE stxbitmaps-docid, lv_resolution TYPE stxbitmaps-resolution. lo_conv_x2c = cl_abap_conv_in_ce=>create( ). * lo_conv_x2c->convert( EXPORTING input = Iv_input * IMPORTING data = base64_string ). * base64_string = iv_input. *— decoding base_64 CALL FUNCTION ‘SSFC_BASE64_DECODE’ EXPORTING b64data = base64_string * B64LENG = * B_CHECK = IMPORTING bindata = base64_xstring EXCEPTIONS ssf_krn_error = 1 ssf_krn_noop = 2 ssf_krn_nomemory = 3 ssf_krn_opinv = 4 ssf_krn_input_data_error = 5 ssf_krn_invalid_par = 6 ssf_krn_invalid_parlen = 7 OTHERS = 8. “Getting the data CALL FUNCTION ‘SCMS_XSTRING_TO_BINARY’ EXPORTING buffer = base64_xstring append_to_table = ‘X’ IMPORTING output_length = lv_size TABLES binary_tab = lt_content. DESCRIBE TABLE lt_content LINES DATA(lv_count). READ TABLE lt_content INTO DATA(ls_content) INDEX lv_count. IF ls_content-l = text-e01. ev_return = ‘E’. ELSE. ev_return = ‘S’. IF iv_del IS INITIAL. “Saving Dsign

ls_dsign-tdname = iv_name. ls_dsign-sign = base64_xstring. MODIFY zfcs_sign_update FROM ls_dsign. “Uploading the Grahic(s) PERFORM import_bitmap USING lc_filename iv_name lc_object “GRAPHICS lc_id “BMAP lc_btype “BMON lc_extension “BMP lc_title lc_resident lc_autoheight “X lc_bmcomp “X lt_content CHANGING lv_docid lv_resolution. ELSE. “Deleted Upload CALL FUNCTION ‘SAPSCRIPT_DELETE_GRAPHIC_BDS’ EXPORTING i_object = ‘GRAPHICS’ i_name = iv_name i_id = ‘BMAP’ i_btype = ‘BMON’ dialog = ” EXCEPTIONS enqueue_failed = 1 delete_failed = 2 not_found = 3 canceled = 4 OTHERS = 5. ENDIF. ENDIF. “Check no error ENDFUNCTION.

Related Documents


More Documents from "daveharshil31"