Cerca nel blog

martedì 24 settembre 2024

Copia di un IDoc di test da un sistema ad un altro

 Copia di un IDoc di test da un sistema ad un altro



Un metodo per copiare un Idoc da un sistema A (sorgente) ad un sistema B (destinazione) è il seguente:

Nel sistema sorgente, richiamare la transazione WE19, inserire il numero dell'Idoc da copiare e premere F8

Premere il pulsante "Entrata File", digita un percorso e un nome per il file (sul server SAP!), assicurati di deselezionare "Avvia immediatamente l'elaborazione in entrata IDoc del file" e conferma. Di conseguenza, il file verrà scritto in un file sul server SAP.
NOTA: È importante notare che questa azione comporterà la creazione di un altro IDoc nel sistema, nello stato 68 "Errore: nessuna ulteriore elaborazione" "IDoc modello scritto nel database. Non definito per l'elaborazione".


Copia il file dal server SAP sul tuo computer usando il FM ARCHIVFILE_SERVER_TO_CLIENT



Nel sistema di destinazioneCarica il file tuo computer al server usano il FM ARCHIVFILE_CLIENT_TO_SERVER


Elabora IDoc dal file, richiamare la transazione WE19 nel sistema di destinazione, elaborando il file caricato in precedenza.

 





mercoledì 19 giugno 2024

L'opzione Salva file locale - Excel non è più presente in SAP

 L'opzione Salva file locale - Excel non è più  presente in SAP



L'opzione Salva file locale - Excel non è più presente in SAP dopo la SAPKB74001 del pacchetto di supporto.


Infatti la nuova schermata, non prevede l'opzione Foglio elettronico e si presente nel seguente modo.


Questo è spiegato nella nota sap:

Per fare il download del file in Excel, procedere in questo modo, nella figura precedente selezionare l'opzione "Testo con tabulatori", nella popup successiva inserire il nome del file con l'estensione .XLS
e nella codifica inserite 4103.

    
Dopo avere premuto il pulsante crea, verrà fatto il download del file in excel.






SE MI CONTATTATE IN PRIVATO, PAGATE LA META' DEL PREZZO DI AMAZON, E POTETE SCEGLIERE IL FORMATO WORD o PDF. 



giovedì 6 giugno 2024

Mostrare nella My Inbox di Fiori gli allegati delle RdA (ME53N)

Mostrare nella My Inbox di Fiori gli allegati delle RdA (ME53N)



L'APP standard My Inbox di Fiori, normalmente permette di visualizzare e fare il download solo degli allegati inseriti in Business Workplace.




Implementeremo del codice per fare in modo che l'APP, consenta la visualizzazione/download degli allegati inseriti nelle Tcode ME51N, ME52N



Richiamare la tcode SE18, e ricercare la badi WF_OBJECT_ATTACHMENT

Fare doppio click su implementazioni, e nella schermata di dx fare doppio click su  MM_PUR_PR_WFL_ATTACHMENT


Fare doppio click sulla classe a sx, e nella schermata di dx fare doppio click prima su IF_ATTACHMENT_PROVIDER_BADI~GET_ATTACHMENT_LIST  (per fare in modo di visualizzare gli allegati nella My Inbox) e poi su IF_ATTACHMENT_PROVIDER_BADI~GET_ATTACHMENT_CONTENT (per gestire il download degli allegati)



Creare l'enhancement ZWF_OBJECT_ATTACHMENT_RDA nei 2 metodi:

Metodo: IF_ATTACHMENT_PROVIDER_BADI~GET_ATTACHMENT_LIST

ENHANCEMENT 1  ZWF_OBJECT_ATTACHMENT_RDA.    "active version
DATAlv_gos_objkey_rda  TYPE objky.
IF lt_purchaserequisitionitem[] IS NOT INITIAL AND lv_gos_objkey IS INITIAL.
  lv_gos_objkey_rda is_business_object-instid+0(10).

  TRY.
      IF lv_gos_objkey_rda IS NOT INITIAL.
        cl_odata_cv_attachment_api=>get_instance)->if_odata_cv_attachment_api~retrieve_attachments_id(
            EXPORTING
              iv_objecttype          'BO'
              iv_objecttype_long     'BUS2105'
              iv_objectkey           lv_gos_objkey_rda
              iv_run_no_auth_check   abap_false
            IMPORTING
              et_attachments         lt_attachments
              et_messages            lt_message ).
        LOOP AT lt_attachments INTO ls_attachment.
          ls_attach-filesize        ls_attachment-filesize.
          ls_attach-mime_type       ls_attachment-mimetype.
          ls_attach-created_by_user ls_attachment-createdby.
          ls_attach-created_at      ls_attachment-createdat.
          ls_attach-id              ls_attachment-file_id.
          CONCATENATE lv_gos_objkey_rda ls_attachment-filename
              INTO ls_attach-filename   SEPARATED BY space.
          ls_attach-delete_enabled  ls_attachment-deletion_indicator.
          ls_attach-changed_at      ls_attachment-createdat.
          ls_attach-changed_by_user ls_attachment-createdby.
          INSERT ls_attach INTO TABLE ct_attachment.
        ENDLOOP.
      ENDIF.
    CATCH cx_odata_cv_base_exception INTO lx_odata_cv_base.
      IF lt_message IS NOT INITIAL.
        RAISE EXCEPTION TYPE cx_swf_run_attachment_badi
          EXPORTING
            previous lx_odata_cv_base.
      ENDIF.
  ENDTRY.
ENDIF.

ENDENHANCEMENT.

ENDMETHOD.

Metodo: IF_ATTACHMENT_PROVIDER_BADI~GET_ATTACHMENT_LIST

ENHANCEMENT 2  ZWF_OBJECT_ATTACHMENT_RDA.    "active version
DATAlv_gos_objkey_rda  TYPE objky.
IF lv_gos_objkey_rda IS INITIAL.
  lv_gos_objkey_rda is_business_object-instid+0(10).

  TRY.
*       GOS Attachments
      IF lv_gos_objkey_rda IS NOT INITIAL.
        cl_odata_cv_attachment_api=>get_instance)->if_odata_cv_attachment_api~retrieve_attachments_id(
          EXPORTING
            iv_objecttype_long     'BUS2105'
            iv_objectkey           lv_gos_objkey_rda
            iv_run_no_auth_check   abap_true
          IMPORTING
            et_attachments lt_attachments_gos
            et_messages    lt_message
          ).
        APPEND LINES OF lt_attachments_gos TO lt_attachments.
      ENDIF.
    CATCH cx_odata_cv_base_exception INTO lx_odata_cv_base.
      RAISE EXCEPTION TYPE cx_swf_run_attachment_badi
        EXPORTING
          previous lx_odata_cv_base.
  ENDTRY.
  READ TABLE lt_attachments INTO ls_attachment WITH KEY file_id lv_attachment_id.
  IF sy-subrc EQ 0.
    IF ls_attachment-mimetype EQ 'text/url'" this is an URL attachment
      lv_url ls_attachment-url.
      CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
        EXPORTING
          text   lv_url
        IMPORTING
          buffer lv_xurl.

* --- Attaching content of URL file ---
      INSERT VALUE #(
                      id        ls_attachment-file_id
                      data      lv_xurl
                      mime_type 'text/uri-list'
                      filename  ls_attachment-filename
                      filesize  0
                     INTO TABLE ct_attachment_content.
    ELSE"Other attachment (non-URL)
      TRY.
          APPEND lv_attachment_id TO lt_attachment_id.
          cl_odata_cv_attachment_api=>get_instance)->if_odata_cv_attachment_api~retrieve_attachments_content(
            EXPORTING
              iv_objecttype_long     COND #WHEN ls_attachment-documenttype EQ 'GOS' THEN 'BUS2105' ELSE 'EBAN' )
              iv_objectkey           COND #WHEN ls_attachment-documenttype EQ 'GOS' THEN lv_gos_objkey_rda ELSE lv_dms_objkey )
              it_file_ids            lt_attachment_id
              iv_run_no_auth_check   abap_false
            IMPORTING
              et_attachment_contents lt_att_content
              et_messages            lt_message
          ).
* Fill the attachment structure
          LOOP AT lt_att_content INTO ls_att_content WHERE file_id lv_attachment_id.
            INSERT VALUE #(
                            id        ls_att_content-file_id
                            data      ls_att_content-attachment_content
                            mime_type ls_att_content-mimetype
                            filename  ls_att_content-filename
                            filesize  ls_att_content-filesize
                          INTO TABLE ct_attachment_content.
          ENDLOOP.
        CATCH cx_odata_cv_base_exception INTO lx_odata_cv_base.
          RAISE EXCEPTION TYPE cx_swf_run_attachment_badi
            EXPORTING
              previous lx_odata_cv_base.
      ENDTRY.
    ENDIF.
  ENDIF.
ENDIF.
ENDENHANCEMENT.

ENDMETHOD.






SE MI CONTATTATE IN PRIVATO, PAGATE LA META' DEL PREZZO DI AMAZON, E POTETE SCEGLIERE IL FORMATO WORD o PDF.