SAP Felder vorbelegen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

SAP Felder vorbelegen

Beitrag von isensatus (ForumUser / 6 / 0 / 0 ) »
Guten Tag,

ich möchte gerne ein Feld, welches nur durch die Auswahl in einem Drop Down Menü befüllt werden kann bei Transaktionsaufruf mit der Auswahl vorbelegen, die beim letzten Aufruf ausgewählt worden ist! Ist sowas möglich? Bisherige Recherchen sind leider im Sand verlaufen:

Ich weiß das man für seinen eigenen Benutzer unter "Menüleiste -> System -> Benutzervorgaben -> Eigene Daten -> Reiter: Parameter" Felder mit festen Werten belegen kann.

Und auch, dass einige Transaktionen auf History Daten zugreifen und Felder beim nächsten Aufruf der Transaktion mit der letzten Eingabe vorbelegen!

Das Demoprogramm zur festen Vorbelegung von Drop Down Menüs hab ich auch gefunden.. bei mir hakt es wirklich an der Frage, ob die letzte Auswahl irgendwo in SAP gespeichert ist




MFG
Florian

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: SAP Felder vorbelegen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Die letzte Auswahl ist für Felder gespeichert, für die eine Parameter-ID angelegt ist (die Du z.B. in der von Dir genannten SU3 für Dich vorbelegen kannst). Im Programm kannst Du bei einem Feld eine Parameter-ID angeben und damit deutlich machen, dass dieses Feld über diesen Parameter vorbelegt werden soll (und diesen selbst auch wieder setzen soll).

Leider hast Du keinerlei Informationen über Dein Programm gegeben, so dass ich noch nicht einmal weiß, ob es ein Report oder ein Modulpool sein soll. Gut wäre, wenn Du den Code posten würdest, den Du schon hast. Dann kann man Dir viel konkreter Ratschläge geben.

Ich würde nicht erwarten, dass die Eigenschaft eines Feldes, ein Dropdown zu sein, die normale Parameter-Funktionalität stört. Wenn das doch so sein sollte, könntest Du den Parameter vor Anzeige des Feldes von Deinem Code lesen lassen udn damit das Feld vorbelegen. Aber dazu muss man mehr über Dein Programm wissen.

Re: SAP Felder vorbelegen

Beitrag von isensatus (ForumUser / 6 / 0 / 0 ) »
Es handelt sich um einen Screen für die indizierung von Dokumenten die mittels Barcode indiziert werden sollen. Die Dropdown auswahl besteht aus Dokument- und Unterdokumentart einer Aktenstruktur, die auf dem Recordsmanagement aufsetzt.


Ich hab bisher nur die TAW10 Schulung absolviert und bin in technischen Fragen wirklich noch ein absoluter SAP Anfänger.


*&---------------------------------------------------------------------*
*& Report /NEXTEVO/ZCM_INDEX_DOC_BARCODE *
*& *
*&---------------------------------------------------------------------*
*& Report zu Erfassen Barcode-Indizierung
**
*& Unter Procs = 0280 kann in Tab. /nextevo/zcm020 ein FB zum Prüfen
*& des Barcodes hinterlegt werden
**


************************************************************************
** HF 2015-09-03 - Bug B-0415-003200:
** - Abbruch-Meldung W086 auskommentiert
************************************************************************
* HF 10.04.2011: Übernahme des AL-Dokumentes
*&---------------------------------------------------------------------*
* cf 05.05.2006: variable Msg Steuerung via T100C
* dazu mus ein enstprechender Eintrag in Views
* - V_T100SA
* - V_T100S
* - V_T100C
* vorhanden sein
*&---------------------------------------------------------------------*

REPORT /nextevo/zcm_index_doc_barcode.


** -------------
** Deklarationen
** -------------

DATA: myzcm020 TYPE /nextevo/zcm020,
myzcm080 TYPE /nextevo/zcm080,
myzcm081 TYPE /nextevo/zcm081,
mydocar TYPE /nextevo/zcmdocar,
myudocar TYPE /nextevo/zcmudocar,
mybldat TYPE bldat,
mybtyp TYPE string,
mymsg TYPE string,
myconfirm TYPE c,
l_clear_bc TYPE i VALUE 1.


** ------------------
** Auswahl-Bildschirm
** ------------------

SELECTION-SCREEN BEGIN OF BLOCK sel WITH FRAME TITLE text-001.
PARAMETERS:
p_barcd TYPE /nextevo/zcmbarcode,
p_rmsid TYPE srmrmsid OBLIGATORY,
p_dodel AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:
pusealid AS CHECKBOX DEFAULT ' ' USER-COMMAND uc_pusealid.
SELECTION-SCREEN COMMENT 3(60) text-002 FOR FIELD pusealid.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 3.
PARAMETERS:
pchgcomp AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 6(79) text-003 FOR FIELD pchgcomp.
SELECTION-SCREEN END OF LINE.

PARAMETERS:
p_btyp TYPE char20 DEFAULT 'CODE_2_5_I',
p_blen TYPE i DEFAULT 6,
p_casid TYPE scmg_case_guid NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK sel.


** --------------
** INITIALIZATION
** --------------

INITIALIZATION.
SET PF-STATUS 'STD'.


** AT SELECTION-SCREEN OUTPUT
** --------------------------

AT SELECTION-SCREEN OUTPUT.
IF l_clear_bc = 1.
CLEAR p_barcd.
l_clear_bc = 0.
ENDIF.
LOOP AT SCREEN.
IF screen-name = 'PCHGCOMP' AND pusealid = 'X'.
screen-input = 1.
ELSEIF screen-name = 'PCHGCOMP' AND pusealid IS INITIAL.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.


** -------------------
** AT SELECTION-SCREEN
** -------------------

AT SELECTION-SCREEN.

DATA: myt100c TYPE t100c.

* Barcode prüfen ...
DATA: mylen TYPE i.

IF p_blen <> 0.
mylen = STRLEN( p_barcd ).
IF mylen <> p_blen.
MESSAGE e163(/nextevo/zcm) WITH p_barcd.
ENDIF.
ENDIF.

SELECT SINGLE * FROM /nextevo/zcm020 INTO myzcm020
WHERE rmsid = p_rmsid
AND procs = '0280'
AND active = 'X'.
IF sy-subrc = 0.
* CALL FUNCTION '/NEXTEVO/ZCM_CHK_BARCODE'
mybtyp = p_btyp.
CALL FUNCTION myzcm020-fbnam
EXPORTING
im_barcode = p_barcd
im_type = mybtyp
im_length = p_blen
EXCEPTIONS
not_valid = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e163(/nextevo/zcm) WITH p_barcd.
ENDIF.

ENDIF.

* Abfrage variable Nachrichtensteuerung
SELECT SINGLE * FROM /nextevo/zcm080 INTO myzcm080
WHERE barcode = p_barcd.
IF sy-subrc = 0.
IF myzcm080-xcmpl <> 'X'.
* Offene Barcode Indizierung vorhanden. Daten bearbeiten?
CONCATENATE 'Zum Barcode' p_barcd 'liegt eine Indizierung vor. Daten bearbeiten?'
INTO mymsg SEPARATED BY ' '.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Barcode'
text_question = mymsg
display_cancel_button = ' '
IMPORTING
answer = myconfirm.
IF myconfirm = '2'.
** HF 2015-09-03 - Bug B-0415-003200: Auskommentiert
* MESSAGE w086(/nextevo/zcm) WITH p_barcd.
CLEAR p_barcd.
ENDIF.
p_casid = myzcm080-casid.
SELECT * FROM /nextevo/zcm081 INTO myzcm081
WHERE reqid = myzcm080-reqid
AND LINE = myzcm080-line.
IF myzcm081-name = '/NEXTEVO/DOCAR'.
mydocar = myzcm081-value.
ENDIF.
IF myzcm081-name = '/NEXTEVO/UDOCAR'.
myudocar = myzcm081-value.
ENDIF.
IF myzcm081-name = '/NEXTEVO/BLDAT'.
mybldat = myzcm081-value.
ENDIF.
ENDSELECT.
ELSE.
* Barcode Indizierung bereits geschlossen, Verwendung nicht möglich
MESSAGE w086(/nextevo/zcm) WITH p_barcd.
CLEAR p_barcd.
ENDIF.

ENDIF.


** START-OF-SELECTION
** ------------------

START-OF-SELECTION.

IF p_barcd IS NOT INITIAL.
CALL FUNCTION '/NEXTEVO/ZCM_INBOUND_BARCODE'
EXPORTING
im_mode = 'B'
im_caseguid = p_casid
im_docar = mydocar
im_udocar = myudocar
im_barcode = p_barcd
im_bldat = mybldat
im_rmsid = p_rmsid
im_do_del = p_dodel
im_use_al_docid = pusealid
im_change_data_comp = pchgcomp
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE s125(/nextevo/zcm).
ELSE.
MESSAGE s126(/nextevo/zcm) WITH p_barcd.
ENDIF.
ENDIF.

** END-OF-SELECTION
** ----------------
END-OF-SELECTION.

Re: SAP Felder vorbelegen

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Also wir reden von einem Report und keinem Modulpool. Ok. Nun sehe ich in Deinem Code aber keinen Parameter, der als Dropdown definiert wäre. Den muss es natürlich erst mal geben, bevor Du darüber nachdenken kannst, wie Du den Dropdown sinnvoll vorbelegst. Du bräuchtest also eine Zeile der Form

PARAMETERS meinpar(1) AS LISTBOX VISIBLE LENGTH 30.

Und dazu ergänzenden Code zur Befüllung der möglichen Dropdownwerte.

Oder meintest Du am Ende gar keinen Dropdown, sondern nur ein Freitextfeld mit Werthilfe? Das wäre natürlich etwas ganz anderes!

Re: SAP Felder vorbelegen

Beitrag von isensatus (ForumUser / 6 / 0 / 0 ) »
Hallo, nach einigen Tagen Recherche und Bastelei habe ich am Ende eine Lösung zu dem Thema gefunden und wieder sehr viel dazu gelernt! :)

Falls es jemanden interessiert, hier der Code..


*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(IM_MODE) TYPE CHAR1 DEFAULT 'B'
*" VALUE(IM_BARCODE) TYPE BARCODE OPTIONAL
*" VALUE(IM_CASEGUID) TYPE BAPIGUID OPTIONAL
*" VALUE(IM_DOCAR) TYPE /NEXTEVO/ZCMDOCAR OPTIONAL
*" VALUE(IM_UDOCAR) TYPE /NEXTEVO/ZCMUDOCAR OPTIONAL
*" VALUE(IM_BLDAT) TYPE BLDAT OPTIONAL
*" VALUE(IM_RMSID) TYPE SRMRMSID OPTIONAL
*" VALUE(IM_PROCESSID) TYPE /NEXTEVO/ZCMPROCESSID OPTIONAL
*" EXPORTING
*" VALUE(EX_RETURN) TYPE BAPIRET2
*" TABLES
*" ET_DOCS STRUCTURE /NEXTEVO/ZCM_DOCS OPTIONAL
*" ET_PROPERTIES STRUCTURE BAPIPROPTB OPTIONAL
*" ET_VISIBILITY STRUCTURE BAPIPROPTB OPTIONAL
*" ET_RECEIVER STRUCTURE SOOS1 OPTIONAL
*" ET_SRMORGRES STRUCTURE /NEXTEVO/ZORGRES OPTIONAL
*" ET_CASES STRUCTURE SCMG_T_CASE_ATTR OPTIONAL
*" EXCEPTIONS
*" ABBRUCH
*" ERROR
*"----------------------------------------------------------------------
* FB zum Indizieren eines Barcode-Dokuments ...
* zusätzlich müssen alle zu indizierenden Dokumente in Struktur ET_DOCS
* eingestellt werden.
*
* Wenn ET_DOCS-AR_OBJECT, -ARCHIV_ID bekannt, können sie hier angegeben
* werden, sonst werden sie anhand von Defaultangaben ermittelt.
*
* Ebenfalls kann das RMSID ermittelt werden / wird aber später noch
* ermittelt.
*
* Musterbaustein für Barcode-Indizierung ...
* IM_MODE = A Add

DATA: my_docs TYPE /nextevo/zcm_docs,
my_attachments TYPE /nextevo/zcm_attachment,
myproperties TYPE bapiproptb,
my_casetype TYPE scmgcasetype-case_type,
myscmgcasetype TYPE scmgcasetype,
myattr TYPE scmg_t_case_attr,
myzpa100v TYPE /nextevo/zpa100v,
mybldat(10) TYPE c,
mysrmorgreswa TYPE /nextevo/zorgres,
myzcm030t TYPE /nextevo/zcm030t,
lv_ref TYPE /nextevo/zcm_e_tagref,
lv_param TYPE /NEXTEVO/ZCMPARAM.

REFRESH: et_docs, et_properties, gt_agr_texts, gi_srmorgres.
CLEAR: ex_return, g_doc, g_agr_texts, g_pernr, g_props.

g_doc-barcode = im_barcode.
g_doc-case_guid = im_caseguid.

IF NOT im_caseguid IS INITIAL.
SELECT SINGLE * FROM /nextevo/zpa100v INTO myzpa100v
WHERE case_guid = im_caseguid.
IF sy-subrc = 0.
MOVE-CORRESPONDING myzpa100v TO g_doc.
ENDIF.
ENDIF.

*{ REPLACE IDSK900008 1
*\ g_doc-docar = im_docar.
*\ g_doc-udocar = im_udocar.
GET PARAMETER ID 'Z_DOCAR' FIELD G_DOC-DOCAR.
GET PARAMETER ID 'Z_UDOCAR' FIELD G_DOC-UDOCAR.

*} REPLACE
g_doc-bldat = im_bldat.
IF g_doc-bldat IS INITIAL.
g_doc-bldat = sy-datum.
ENDIF.
g_doc-processid = im_processid.

IF NOT im_docar IS INITIAL.
SELECT SINGLE * FROM /nextevo/zcm030t INTO myzcm030t
WHERE rmsid = im_rmsid
AND docar = im_docar
AND ( casetype = g_doc-case_type OR casetype = ' ' )
AND spras = sy-langu.
IF sy-subrc = 0.
WRITE g_doc-bldat TO mybldat.
CONCATENATE myzcm030t-bez 'vom'(011) mybldat INTO g_doc-description SEPARATED BY ' '.
ENDIF.
ENDIF.

IF NOT im_udocar IS INITIAL.
SELECT SINGLE * FROM /nextevo/zcm035t INTO CORRESPONDING FIELDS OF myzcm030t
WHERE rmsid = im_rmsid
AND docar = im_docar
AND udocar = im_udocar
AND ( casetype = g_doc-case_type OR casetype = ' ' )
AND spras = sy-langu.
IF sy-subrc = 0.
WRITE g_doc-bldat TO mybldat.
CONCATENATE myzcm030t-bez 'vom'(011) mybldat INTO g_doc-description SEPARATED BY ' '.
ENDIF.
ENDIF.

IF g_doc-urheber IS INITIAL.
g_doc-urheber = sy-uname.
ENDIF.

g_doc-rmsid = im_rmsid.

* EMail Receiver initialisieren
CLEAR: sosndscr.
EXPORT sosndscr TO MEMORY ID 'SAPLS040150'.

* Modus setzen B=Barcode, E=EMail
g_mode = 'B'.
IF NOT im_mode IS INITIAL.
g_mode = im_mode.
ENDIF.
IF NOT g_doc-docar IS INITIAL.
IF NOT g_doc-udocar IS INITIAL.
CONCATENATE g_doc-docar g_doc-udocar INTO lv_ref SEPARATED BY '.'.
ELSE.
lv_ref = g_doc-docar.
ENDIF.
ENDIF.
CALL FUNCTION '/NEXTEVO/ZCM_INIT_TAG'
EXPORTING
piv_rms_id = im_rmsid
piv_tag_type = '1'
piv_reference = lv_ref.
* if gv_tagscr is INITIAL.
SELECT SINGLE param from /nextevo/zcm001
INTO lv_param
WHERE rmsid = g_doc-rmsid
AND id = '0446'.

if lv_param = 'X'.
gv_tagscr = '0100'.

else.
gv_tagscr = '0101'.

endif.
* endif.
if gv_tagscr = '0100'.
CALL SCREEN '2000' STARTING AT 5 5 .
else.
CALL SCREEN '2000' STARTING AT 5 5 ENDING AT 118 25.
ENDIF.

CASE g_return.
WHEN 'A'.
ex_return-type = 'E'.
ex_return-message = 'Abbruch Transaktion'.
RAISE abbruch.
WHEN 'C'.
ex_return-type = 'E'.
ex_return-message = 'Abbruch Transaktion'.
RAISE abbruch.
WHEN 'S'.
ex_return-type = 'S'.

* Property-Tabelle füllen
CALL FUNCTION '/NEXTEVO/ZPA_CONV_TO_DOC_PROPS'
EXPORTING
im_zpa100d1 = g_doc
TABLES
et_properties = et_properties.
*
* ET_DOCS-Tabelle füllen / zunächst Hauptdokument anfügen
MOVE-CORRESPONDING g_doc TO my_docs.
my_docs-posnr = 1.
my_docs-caseguid = g_doc-case_guid.
my_docs-descri = g_doc-description.
my_docs-spsid = g_doc-spsid.
APPEND my_docs TO et_docs.

* EMail Receiver
et_receiver[] = sosndscr-rec_tab.

* Visibility
SORT gt_agr_texts BY agr_name.
DELETE ADJACENT DUPLICATES FROM gt_agr_texts.
LOOP AT gt_agr_texts INTO g_agr_texts.
IF NOT g_agr_texts-agr_name IS INITIAL.
PERFORM addproperties TABLES et_visibility USING 'ROLE' g_agr_texts-agr_name.
ENDIF.
ENDLOOP.

* SRMORGRES
CLEAR mysrmorgreswa.
mysrmorgreswa-rmsid = im_rmsid.
REFRESH et_srmorgres.
LOOP AT gi_srmorgres INTO gs_srmorgres.
MOVE-CORRESPONDING gs_srmorgres TO mysrmorgreswa.
APPEND mysrmorgreswa TO et_srmorgres.
ENDLOOP.

ENDCASE.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Funktionsbaustein /NEXTEVO/ZPA_INDEX_BARCODE, Ende A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZDPA_INDEX_BARCODE. "active version
SET PARAMETER ID 'Z_DOCAR' FIELD G_DOC-DOCAR.
SET PARAMETER ID 'Z_UDOCAR' FIELD G_DOC-UDOCAR.

ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
ENDFUNCTION.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
4573
Views
Felder vorbelegen
von bohne » 24.10.2006 12:20 • Verfasst in ABAP® für Anfänger
0
Antw.
1497
Views
1
Antw.
1710
Views
Felder im Kundenstamm mit Werten vorbelegen
von Slim_Chance » 04.08.2005 14:24 • Verfasst in ABAP® Core
7
Antw.
5076
Views
ALV Felder vorbelegen & Dynamisch füllen
von RIG » 29.04.2014 15:19 • Verfasst in ABAP® für Anfänger
1
Antw.
189
Views
BP Felder Vorbelegen in Kunde Vertrieb
von KaiserD » 08.11.2023 09:21 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140