SAP Jobsuche bei DV-Treff
pipanst
  • pipanst
  • SAP Forum - User Thema Starter
vor 13 Jahre

Hallo zusammen,

ich habe folgendes Problem. Ich muss zum Zeitpunkt des Speicherns eines Kundenauftrags kontrollieren, ob sich in der Kundenauftragskonfiguration einer Position etwas geändert hat.

Für VBAP Felder mache ich das bereits (im USEREXIT_SAVE_DOCUMENT_PREPARE) mit Hilfe der internen Tabellen XVBAP und YVBAP.

Ich habe jedoch bisher keine Möglichkeit gefunden das selbe mit den Konfigurationsdaten zu machen.

Weiß hier jemand Rat?

Vielen Dank im voraus.

pipanst

Förderer

tomtaste
vor 13 Jahre

Hallo,

das ist nicht trivial. Deshalb hier nur eine Lösungsskizze ohne Gewähr

UE MF45ATZZ

Definition einiger notwendiger Variablen :

SPAN {

font-family: "Courier New";

font-size: 10pt;

color: #000000;

background: #FFFFFF;

}

.L0S32 {

color: #3399FF;

}

.L0S52 {

color: #0000FF;

}data: begin of gt_konf_changed occurs 0.
data:   vbeln type vbeln.
data:   posnr type posnr.
data:   zz_changed type c.
data: end of gt_konf_changed,
      gs_konf_changed like line of gt_konf_changed.

data: gt_conf_out_old like table of conf_out,
      gt_conf_out_new like table of conf_out.

UE MV45AFZC USEREXIT_CONFIG_DATE_EXPLOSION

Bin mir nicht sicher, aber ich meine, dieser UE wird vor der Konfiguration aufgerufen. Hier sollte VBAP-CUOBJ verfügbar sein. Alternativ MV45AFZF USEREXIT_CONFIGURATION_MODE versuchen.

  clear: gt_conf_out_old,  gt_conf_out_old[].

SPAN {

font-family: "Courier New";

font-size: 10pt;

color: #000000;

background: #FFFFFF;

}

.L0S32 {

color: #3399FF;

}

.L0S33 {

color: #4DA619;

}

.L0S52 {

color: #0000FF;

}call function 'VC_I_GET_CONFIGURATION_IBASE'
  exporting
    instance           = vbap-cuobj
  tables
    configuration      = gt_conf_out_old

  exceptions
    instance_not_found = 1
    others             2.

UE MV45AFZB GET_FIELD_TO_SDCOM wird prozessiert, sobald die Konfiguration verlassen wird :

 

SPAN {

font-family: "Courier New";

font-size: 10pt;

color: #000000;

background: #FFFFFF;

}

.L0S32 {

color: #3399FF;

}

.L0S33 {

color: #4DA619;

}

.L0S52 {

color: #0000FF;

}call function 'VC_I_GET_CONFIGURATION_IBASE'
  exporting
    instance           = vbap-cuobj
  tables
    configuration      = gt_conf_out_new

  exceptions
    instance_not_found = 1
    others             2.

if gt_conf_out_old <> gt_conf_out_new.

hier jetzt den passenden Eintrag aus gt_konf_changed suchen, Feld zz_changed auf 'X' setzen.

else.

hier jetzt den passenden Eintrag aus gt_konf_changed suchen, Feld zz_changed auf '' setzen.

endif.

UE MV45AFZZ SAVE_DOCUMENT_PREPARE

Hier dann die Tabelle gt_conf_changed für alle Einträge mit zz_changed = 'X' auswerten.

MfG

tomtaste

pipanst
  • pipanst
  • SAP Forum - User Thema Starter
vor 13 Jahre
Hab das so ähnlich gelöst. Ich habe ein paar Felder der Konfiguration auf der VBAP in der Append-Struktur hinzugefügt.

Im USEREXIT_GET_FIELD_FROM_SDCOM füge ich genau diese Konfigurationswerte den Feldern der VBAP hinzu also:

VBAP-ZZFELD = SDCOM-ZZFELD.

Und im SAVE_DOCUMENT_PREPARE vergleiche ich XVBAP mit YVBAP.