Export de lignes de tables SAP ERP vers Excel

Beaucoup de transactions SAP ERP affichent les données sous forme de table (table control).  Dans certains cas, l’utilisateur pourra souhaiter avoir ces données dans une feuille de travail Excel pour d’autres affichages, impressions ou traitements.

Nous vous présentons une technique simple utilisant un InputScript pour construire une feuille de travail Excel à partir de la table. L’utilisateur sélectionne quelques (ou toutes) les lignes de la table et appuie sur un bouton qui invoquera notre InputScript.  Le scripte scrolle dans toute la table et collecte toutes les lignes sélectionnées et génère un fichier xxl. Il utilise ensuite la commande “View” pour invoque Excel pour ce fichier. Composantes requises: InputAssistant et Viewer.

Sap Guixt excel1 Excel download of selected table rows

Transaction MIR6. L’utilisateur sélectionne les lignes qu’il voudrait exporter dans une feuille de travail Excel. Il appuie ensuite sur le bouton “Download”. Le système rassemble toutes les lignes sélectionnées et lance Excel:

Sap Guixt excel2 Excel download of selected table rows

Vous avez besoin des 2 scriptes suivants pour cette implémentation:

SAPMM08N.E0201.txt:
Pushbutton (toolbar) “Download selected items” “Process=InvoicesToExcel.txt” 

InvoicesToExcel.txt:

// Parameter
Parameter filename “C:\temp\invoices.xxl”   // Filename for download

// Variables
Set V[absrow] 1   // Absolute row number
Set V[relrow] 1   // Relative row number

Screen sapmm08n.0201
OpenFile “&U[filename]” “-Output” 

// Column headers 
Set V[C1] “Doc. number”
Set V[C2] “Invoicing party”
Set V[C3] “Name of invoicing party”
Set V[C4] “Gross amount”

AppendFile “&U[filename]” C1 C2 C3 C4 

// Start with 1st line
Enter “/ScrollToLine=1″ 

label new_screen
Screen sapmm08n.0201 
Set V[relrow] 1

label new_row

// end of table?
if V[absrow>&[_listlastrow]] 
  CloseFile “&U[filename]“
  View “&U[filename]“
  Enter “/ScrollToLine=1″
  Leave
endif

// end of screen? 
if V[absrow>&[_listlastvisiblerow]] 
  Enter “/ScrollToLine=&V[absrow]“ 
  goto new_screen
endif

Set V[selected] “&cell[Table,0,&V[relrow]]”

// selected?
if V[selected=X]

  Set V[C1] “&cell[Table,Doc. number,&V[relrow]]”
  Set V[C2] “&cell[Table,Invoicing party,&V[relrow]]”
  Set V[C3] “&cell[Table,Name of invoicing party,&V[relrow]]”
  Set V[C4] “&cell[Table,Gross amount,&V[relrow]]”

  AppendFile “&U[filename]” C1 C2 C3 C4 
endif

Set V[absrow] &V[absrow] + 1 
Set V[relrow] &V[relrow] + 1 

goto new_row

Excel download of selected table rows