mercoledì 29 aprile 2015

Cauldron

lunedì 27 aprile 2015

Inserimento e lancio di una sessione Batch-Input

*----------------------------------------------------------------------*
* DECLARATIONS                                                         *
*----------------------------------------------------------------------*
DATA: BEGIN OF gt_in OCCURS 0,
        matnr    LIKE MARA-MATNR,
        [...]
      END OF gt_in.

DATA: gt_bdcdata LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA: gv_qid LIKE APQI-QID.

*----------------------------------------------------------------------*
* LAYOUT                                                               *
*----------------------------------------------------------------------*
PARAMETERS: pa_sess(12) NO-DISPLAY.

*---------------------------------------------------------------------*
* FORM CREA_SESSIONE                                                  *
*---------------------------------------------------------------------*
FORM crea_sessione.

  CLEAR: gt_bdcdata, gt_bdcdata[].

  PERFORM bdc_open_group USING pa_sess.
  LOOP AT gt_in.
    PERFORM bdc_dynpro_field USING:
      'X' 'ZMMA_MATIMB2'        '0100',
      ' ' 'BDC_OKCODE'          '=ENTR',
      ' ' 'L_DYN_0100-MATNR'    gt_in-matnr.
      [...]
    PERFORM bdc_transaction USING 'ZMMA_MATIMB'.
    CLEAR: gt_bdcdata, gt_bdcdata[].
  ENDLOOP.
  PERFORM bdc_close_group.
  PERFORM bdc_start_group USING pa_sess.

ENDFORM.                    "crea_sessione

*----------------------------------------------------------------------*
* FORM BDC_OPEN_GROUP                                                  *
*----------------------------------------------------------------------*
FORM bdc_open_group USING p_session.

  CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
      CLIENT = SY-MANDT
      GROUP  = p_session
      KEEP   = 'X'
      USER   = SY-UNAME
    IMPORTING
      QID    = gv_qid.
  IF SY-SUBRC <> 0.
    MESSAGE E000(YA1) WITH 'ERRORE BDC_OPEN_GROUP PER '
                           'SESSIONE BATCH-INPUT '
                           p_session.
  ENDIF.

ENDFORM.                    "bdc_open_group

*----------------------------------------------------------------------*
* FORM BDC_CLOSE_GROUP                                                 *
*----------------------------------------------------------------------*
FORM bdc_close_group.

  CALL FUNCTION 'BDC_CLOSE_GROUP'
    EXCEPTIONS
      NOT_OPEN    = 1
      QUEUE_ERROR = 2
      OTHERS      = 3.
  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    "bdc_close_group

*----------------------------------------------------------------------*
* FORM BDC_DYNPRO_FIELD                                                *
*----------------------------------------------------------------------*
FORM bdc_dynpro_field USING p_dynbegin p_fnam p_fval.

  CLEAR gt_bdcdata.
  IF p_dynbegin = 'X'.
    gt_bdcdata-program  = p_fnam.
    gt_bdcdata-dynpro   = p_fval.
    gt_bdcdata-dynbegin = 'X'.
  ELSE.
    gt_bdcdata-fnam = p_fnam.
    gt_bdcdata-fval = p_fval.
  ENDIF.
  APPEND gt_bdcdata.

ENDFORM.                    "bdc_dynpro_field

*----------------------------------------------------------------------*
* FORM BDC_TRANSACTION                                                 *
*----------------------------------------------------------------------*
FORM bdc_transaction USING p_tcode.

  CALL FUNCTION 'BDC_INSERT'
    EXPORTING
      TCODE     = p_tcode
    TABLES
      DYNPROTAB = gt_bdcdata.

ENDFORM.                    "bdc_transaction

*----------------------------------------------------------------------*
* FORM BDC_START_GROUP                                                 *
*----------------------------------------------------------------------*
FORM bdc_start_group USING p_session.

  DATA: lv_bdc(4) VALUE 'BDC ',            "Datatyp = Batch-Input
        lv_amodus(1) VALUE 'E',            "Visualizzare errore
        lv_lmodus(1),                      "Registro ampliato
        lv_expert(1),                      "Sess. esperto
        lv_defsize(1),                     "Dim. standard dynpro
        lv_errfend(1),                     "Interr. in caso di err. log
        lv_simubatch(1).                   "Simulare sess. background

  CALL 'BDC_START_GROUP' ID 'GROUP'         FIELD p_session
                         ID 'QUID'          FIELD gv_qid
                         ID 'DISPLAY'       FIELD lv_amodus
                         ID 'LOG'           FIELD lv_lmodus
                         ID 'EXPERT'        FIELD lv_expert
                         ID 'DYSIZE'        FIELD lv_defsize
                         ID 'ERRORFORCEEND' FIELD lv_errfend
                         ID 'SIMUBATCH'     FIELD lv_simubatch.

ENDFORM.                    "bdc_start_group

*----------------------------------------------------------------------*

lunedì 20 aprile 2015

Quer pasticciaccio brutto de via Merulana, Carlo Emilio Gadda

Quer pasticciaccio brutto de via Merulana
Di Carlo Emilio Gadda
Editore: Gruppo Editoriale l'Espresso


Lingua: Italiano | Numero di pagine: 256 | Isbn-13: 9788481305425 | Data di pubblicazione: 01/01/2002 | Genere: Criminalità - Narrativa & Letteratura - Mistero & Gialli

giovedì 16 aprile 2015

La Bibbia

La Bibbia
Editore: Ancora

Lingua: Italiano | Numero di pagine: 1768 | Isbn-13: 9788851406400 | Data di pubblicazione: 2009-xx-xx | Curatore: Bruno Maggioni - Gregorio Vivaldelli | Genere: Storia - Legge - Religione & Spiritualità

martedì 14 aprile 2015

Plunder n

/ˈplʌndə/

Traducendo Raiders of the North Sea ho imparato questo vocabolo.

EnglishItaliano
plunder [sth] vtr(loot, steal)saccheggiare, depredare vtr
The thieves plundered the jewellery shop.
I ladri hanno saccheggiato i gioielli del negozio.
plunder n(looted items)bottino, malloppo nm
The gang divided up the plunder from their latest robbery.
La gang si è divisa il bottino dell'ultima rapina.
plunder n(act of looting)saccheggio nm, razzia nf
After the plunder of the church, the doors were kept locked except during services.
Dopo il saccheggio della chiesa le porte sono state tenute chiuse, fatta eccezione per la messa.

There is no limit to how much Plunder players may hold.
Non c'è alcun limite alla quantità di Bottino che i giocatori possono detenere.

mercoledì 8 aprile 2015

Determinare il nome del Function Module generato

*----------------------------------------------------------------------*
* DECLARATIONS                                                         *
*----------------------------------------------------------------------*
data: gv_form     TYPE NA_FNAME,
      gv_function TYPE RS38L_FNAM.

*----------------------------------------------------------------------*
* FORM READ_FM                                                         *
*----------------------------------------------------------------------*
FORM read_fm USING    pv_form
             CHANGING pv_function.

  DATA: lv_w_cx_root            TYPE REF TO cx_root,
        lv_cx_fp_api_repository TYPE REF TO cx_fp_api_repository,
        lv_cx_fp_api_usage      TYPE REF TO cx_fp_api_usage,
        lv_cx_fp_api_internal   TYPE REF TO cx_fp_api_internal.

  TRY.
      CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
        EXPORTING
          I_NAME     = pv_form
        IMPORTING
          E_FUNCNAME = pv_function.
    CATCH cx_fp_api_repository INTO lv_cx_fp_api_repository.
      MESSAGE lv_cx_fp_api_repository TYPE 'E'.
    CATCH cx_fp_api_internal INTO lv_cx_fp_api_internal.
      MESSAGE lv_cx_fp_api_internal TYPE 'E'.
    CATCH cx_fp_api_usage INTO lv_cx_fp_api_usage.
      MESSAGE lv_cx_fp_api_usage TYPE 'E'.
    CATCH cx_root INTO gv_w_lx_root.
      MESSAGE lv_w_cx_root TYPE 'E'.
  ENDTRY.

ENDFORM.                    " read_fm

martedì 7 aprile 2015

Esportare un semplice file di Excel

*----------------------------------------------------------------------*
* DECLARATIONS                                                         *
*----------------------------------------------------------------------*
DATA: BEGIN OF gt_out OCCURS 0,
         bukrs  LIKE BSEG-BUKRS,
         belnr  LIKE BSEG-BELNR,
         gjahr  LIKE BSEG-GJAHR,
         [...]
       END OF gt_out.

*----------------------------------------------------------------------*
* LAYOUT                                                               *
*----------------------------------------------------------------------*
PARAMETERS: pa_file TYPE STRING LOWER CASE.

*----------------------------------------------------------------------*
* FORM OUTPUT_XLS                                                      *
*----------------------------------------------------------------------*
FORM output_xls.

  DATA: BEGIN OF ls_fields,
          name(40),
        END OF ls_fields,
        lt_fields LIKE ls_fields OCCURS 0.

  DEFINE append_field.
    ls_fields-name = &1.
    APPEND ls_fields TO lt_fields.
  END-OF-DEFINITION.

  append_field 'FirstField'.
  [...]
  append_field 'LastField'.

  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      FILENAME                = pa_file
      WRITE_FIELD_SEPARATOR   = 'X'
      TRUNC_TRAILING_BLANKS   = 'X'
    TABLES
      DATA_TAB                = gt_out
      FIELDNAMES              = lt_fields
    EXCEPTIONS
      FILE_WRITE_ERROR        = 1
      NO_BATCH                = 2
      GUI_REFUSE_FILETRANSFER = 3
      INVALID_TYPE            = 4
      NO_AUTHORITY            = 5
      UNKNOWN_ERROR           = 6
      HEADER_NOT_ALLOWED      = 7
      SEPARATOR_NOT_ALLOWED   = 8
      FILESIZE_NOT_ALLOWED    = 9
      HEADER_TOO_LONG         = 10
      DP_ERROR_CREATE         = 11
      DP_ERROR_SEND           = 12
      DP_ERROR_WRITE          = 13
      UNKNOWN_DP_ERROR        = 14
      ACCESS_DENIED           = 15
      DP_OUT_OF_MEMORY        = 16
      DISK_FULL               = 17
      DP_TIMEOUT              = 18
      FILE_NOT_FOUND          = 19
      DATAPROVIDER_EXCEPTION  = 20
      CONTROL_FLUSH_ERROR     = 21
      OTHERS                  = 22.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    "output_xls

Se ti leggo amerò per sempre, Carlo Di Cicco

Se ti leggo amerò per sempre
Di Carlo Di Cicco
Editore: Il Pozzo di Giacobbe


Lingua: Italiano | Numero di pagine: 161 | Isbn-13: 9788861245266 | Data di pubblicazione: 2014-09-xx | Genere: Saggio - Religione & Spiritualità

lunedì 6 aprile 2015

Variante di visualizzazione del layout ALV

*----------------------------------------------------------------------*
* LAYOUT                                                               *
*----------------------------------------------------------------------*
PARAMETERS: pa_vari TYPE SLIS_VARI.

*----------------------------------------------------------------------*
* EVENTS                                                               *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_vari.
  DATA: ls_variant TYPE DISVARIANT,
        lv_exit.
  ls_variant-report = SY-REPID.
  ls_variant-username = SY-UNAME.
  ls_variant-variant = pa_vari.
  CALL FUNCTION 'LVC_VARIANT_SAVE_LOAD'
    EXPORTING
      I_SAVE_LOAD = 'F'
      I_TABNAME   = '1'
    IMPORTING
      E_EXIT      = lv_exit
    CHANGING
      CS_VARIANT  = ls_variant
    EXCEPTIONS
      OTHERS      = 1.
  pa_vari = ls_variant-variant.

*----------------------------------------------------------------------*
* FORM OUTPUT_ALV                                                      *
*----------------------------------------------------------------------*
FORM output_alv.

  TYPE-POOLS SLIS.

  DATA: ls_layout   TYPE SLIS_LAYOUT_ALV,
        ls_fieldcat TYPE SLIS_FIELDCAT_ALV,
        lt_fieldcat TYPE SLIS_T_FIELDCAT_ALV,
        ls_variant  TYPE DISVARIANT.

  [...]

  ls_variant-report = SY-REPID.
  ls_variant-username = SY-UNAME.
  IF NOT pa_vari IS INITIAL.
    ls_variant-variant = pa_vari.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM      = SY-CPROG
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE  = 'TOP_OF_PAGE'
      I_BACKGROUND_ID         = 'ALV_BACKGROUND'
      IS_LAYOUT               = ls_layout
      IT_FIELDCAT             = lt_fieldcat
      I_SAVE                  = 'A'
      IS_VARIANT              = ls_variant
    TABLES
      T_OUTTAB                = gt_out.

ENDFORM.                    "output_alv