Category Archive Blog

Catch HTML events with ABAP

Check program SAPHTML_EVENTS_DEMO.

Implement BADI ACC_DOCUMENT (code example)

When input parameters of Bapi ACC_DOCUMENT_POST do not enable to pass BKPF or BSEG fields, it is necessary to pass theses data to LT_EXTENTION2 table and implement the Badi ACC_DOCUMENT.

This code manage dynamically field affectation from LT_EXTENTION2 to corresponding fields.
To be added in class implementation of BADI ACC_DOCUMENT, method change.


METHOD if_ex_acc_document~change.

  DATA: wa_extension TYPE bapiparex,
        wa_accit     TYPE accit.

  DATA : lv_field_name  TYPE char100.        

  FIELD-SYMBOLS :  TYPE ANY,      
                   TYPE ACCIT.    

  LOOP AT c_extension2 INTO wa_extension.

    IF wa_extension-structure = 'BKPF'.
      CONCATENATE 'C_ACCHD-' wa_extension-valuepart2 INTO lv_field_name.
      ASSIGN (lv_field_name) TO .
      IF  IS ASSIGNED.
         = wa_extension-valuepart3.
      ENDIF.
    ENDIF.

    IF wa_extension-structure = 'BSEG'.
      READ TABLE c_accit ASSIGNING  WITH KEY posnr = wa_extension-valuepart1.
      IF sy-subrc IS INITIAL.

        CONCATENATE '-' wa_extension-valuepart2 INTO lv_field_name.
        ASSIGN (lv_field_name) TO .
        IF  IS ASSIGNED.
           = wa_extension-valuepart3.
        ENDIF.
      ENDIF.
    ENDIF.

  ENDLOOP.

ENDMETHOD.

Search tags : FI,

Dropdown list in selection-screen

Sample code :


  PARAMETERS : p_field TYPE ztype AS LISTBOX VISIBLE LENGTH 25.
* If the  ZTYPE has a domain with values, values will be autmatically
* displayed.

If your type has no values in domain or if you want to change the dropdown list values use FM VRM_SET_VALUES in initialization:

Read More

Get SAP access keys (SCCR keys)

Sometimes you need to edit standard object.
When you implement notes for instance, you may have to edit standard object by doing manual actions.

To do that, an access key is required.

To get an access key, you need to have a S-USER linked to your SAP installation to access the SAP portal applications.

Read More

Hide a subform according to context node value

To hide a subform using javascript according a context node value in Adobe form :


// data.MAIN.SUBFORM_TO_HIDE::ready:form - (JavaScript, client)
var fieldToCheck= xfa.resolveNode("$record.MAIN.FIELD_VALUE");
if(fieldToCheck.value == null || fieldToCheck.value == "") {
    this.presence = "hidden";
}

Print form in Duplex

Spool, SAP-Script, Smartforms

Check this post : https://wiki.scn.sap.com/wiki/display/ABAP/Print+Duplex+from+SAP

Adobe form

The duplex printing of the adobe PDF forms can be achieved by setting the parameter available on Master Page of Adobe PDF.
This option is available in Adobe Live Cycle Designer 8.0 version.
The option is in the object view of the master page.

Read More

ABAP code to get change document infos

As it is not possible to do joins with cluster table, this is the code to get change documents data merged between tables CDHDR and CDPOS.

The goal is to get an internal table like :

Read More

Adobe form, count number of elements in a subform with JS

The goal here is to define of there are data into the table, if not, we hide the subform. That means, we hide the whole table (border and header line).
There are several ways to proceed, this is one :

Table from context is binded like :

  • TABLE_TEXT_HEADER_PO binded with $.TABLE_HEADER
  • LINE_TEXT_HEADER_PO binded with $.DATA[*] (repeat subform for each data item is ticked)
  • HEADER_PO_TEXT binded with $.TEXT_CONTENT
Read More

Get function name from form name

Use FM : FP_FUNCTION_MODULE_NAME.


CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
  EXPORTING
    i_name = lv_form  " form name
  IMPORTING
    e_funcname = lv_fm_name. " Function module name