Tabellenzugriff - verschachelte IF-Abfragen

Getting started ... Alles für einen gelungenen Start.
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

Tabellenzugriff - verschachelte IF-Abfragen

Beitrag von chebello (ForumUser / 6 / 0 / 0 ) »
Hallo ABAP-Spezialisten,

ich muss das folgende Programm Prozedurengenierung anpassen.

In Abhängigkeit von der Fallnummer soll ab Fallnummer 2007000001
auf die neue Tabelle yishmed_transf08 zugegriffen werden und abhängig
von der dort hinterlegten Menge ein sogeannter Prozedurencode
erzeugt werden .
Ist die Fallnummer < 2006999999 soll auf die alte Tabelle yishmed_transf
zugegriffen weden und ebenfalls abhängig von der dort hinterlegten
Menge ein sogenannter Prozedurencode erzeugt werden.
(das klappt)
Eigentlich einfach ??

Ich bin gespannt.

chebello

--------------------Prozedurengenerierung---------------------------*

* Je nach Mengeneinheit soll die dazugehörige Prozedur aus aus der
* Customizingtabelle (yishmed_transf yishmed_transf08 beim anklicken
* des Buttons *
* "PROZEDUR GENERIEREN"des Dokumentes generiert werden

* Auslesen der TE-Summen aus dem Dokument
* Feld xtrsumtk
* generierte Prozedur ins Dokumentfeld Y000002E-P_GENPROZ schreiben

TABLES:yishmed_transf,yishmed_transf08, rnapinicp, nicp.

DATA:itrans TYPE yishmed_transf OCCURS 1 WITH HEADER LINE.


DATA: ztrans TYPE i.
DATA: BEGIN OF zcaseprocedure_cdata OCCURS 1.
INCLUDE STRUCTURE bapi1303cdata.
DATA: END OF zcaseprocedure_cdata.
DATA: msgty(1) TYPE c.
DATA: zbapiret2 TYPE bapiret2 OCCURS 1 WITH HEADER LINE.
DATA: icpm TYPE nicp.
DATA sperr_ok TYPE c.




**---------------------------------------------------------------------*
** FORM YGEN *
**---------------------------------------------------------------------*
** ........ *
**---------------------------------------------------------------------*


CONSTANTS: wait TYPE bapita-wait VALUE 'X'.
DATA: comret TYPE bapiret2.


*Prozedur generieren

clear yfcode.
yfcode = fcode.
CASE yfcode.


--------------------Thrombozytenkonserven--------------------------
WHEN 'YPROTK'.

CLEAR:
zcaseprocedure_cdata,
msgty,
itrans,
ztrans,
zbapiret2,
<primtab>-XTRPROTK.

REFRESH: zcaseprocedure_cdata.



* die Mengenangaben und OPS-Codes für Thrombozytenkonzentrat 2008
* sind geändert
* die Abfrage nach Fallnummer ermöglicht die Zuordnung zur
* gültigen Tabelle
* die Tabelle yishmed_transf enthält die bislang gültigen Grenzmengen
* und OPS-Codes für Thrombozytenkonzentrate
* die Tabelle yishmed_transf08 enthält die 08 gültigen Grenzmengen
* und OPS-Codes für Thrombozytenkonzentrate

IF <primtab>-XTRSUMTK > 0 and in_ndoc-falnr < 2006999999.
SELECT * FROM yishmed_transf
INTO CORRESPONDING FIELDS OF TABLE itrans
where yish_transf_art = 'TK'.

*if <primtab>-XTRSUMTK > 0 and in_ndoc-falnr > 2006999999.
*
* SELECT * FROM yishmed_transf08
* INTO CORRESPONDING FIELDS OF TABLE itrans
* where yish_transf_art = 'TK'.


SORT itrans DESCENDING BY yish_transf_te.

CLEAR icpm.
LOOP AT itrans.

CHECK y000002F-XTRSUMTK >= itrans-yish_transf_te.
icpm = itrans-icpml.
* y0000029-i_genproz = icpm.
zcaseprocedure_cdata-sg_pr_code = icpm.
zcaseprocedure_cdata-action = 'I'.
zcaseprocedure_cdata-prc_actionseqno = '1'.
zcaseprocedure_cdata-drg_mode = 'X'.
zcaseprocedure_cdata-movement_proposal = in_ndoc-lfdbew.
zcaseprocedure_cdata-begindate = in_ndoc-dodat.
zcaseprocedure_cdata-enddate = in_ndoc-dodat.
zcaseprocedure_cdata-deptou = in_ndoc-orgfa.
zcaseprocedure_cdata-perfou = in_ndoc-orgle.
zcaseprocedure_cdata-begintime = in_ndoc-dotim.
zcaseprocedure_cdata-endtime = in_ndoc-dotim.
zcaseprocedure_cdata-begindatex = 'X'.
zcaseprocedure_cdata-enddatex = 'X'.
zcaseprocedure_cdata-deptoux = 'X'.
zcaseprocedure_cdata-perfoux = 'X'.
zcaseprocedure_cdata-begintimex = 'X'.
zcaseprocedure_cdata-endtimex = 'X'.

APPEND zcaseprocedure_cdata.
EXIT.
ENDLOOP.

CALL FUNCTION 'BAPI_CASEPROCEDURE_CREATEMULT'
EXPORTING
client = in_ndoc-mandt
institution = in_ndoc-einri
patcaseid = in_ndoc-falnr
* testrun = 'X'
IMPORTING
worst_returned_msgty = msgty
TABLES
caseprocedure_cdata = zcaseprocedure_cdata
* caseprocedure_casssrv =
* caseprocedure_cassdia =
* caseprocedure_data =
* caseprocedure_asssrv =
* caseprocedure_assdia =
return = zbapiret2.

IF msgty NE 'E'.
* Commit
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = wait
IMPORTING
return = comret.
y000002F-XTRPROTK = icpm.

ELSE.
enq_uname = sy-msgv1.
IF enq_uname = sy-uname.
MESSAGE e657(nf) WITH in_ndoc-falnr space.
* Sie haben den Fall & & bereits gesperrt
ELSE.
* PERFORM read_user_telnr(sapmn1pa) USING enq_uname.
* telnr telstrg.
* MESSAGE e658(nf) WITH in_ndoc-falnr space enq_uname .
* Fall & & bereits gesperrt durch &
ENDIF.
ENDIF.
endif.

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


Seite 1 von 1

Vergleichbare Themen

11
Antw.
6852
Views
User - Tabellenzugriff
von Kristin » 25.05.2011 08:35 • Verfasst in Sonstige Module
7
Antw.
2424
Views
Tabellenzugriff zulassen bzw. nicht zulassen
von kbit100 » 23.11.2015 16:45 • Verfasst in ABAP® für Anfänger
16
Antw.
5083
Views
IF-Abfragen
von Rantantan » 14.11.2013 15:41 • Verfasst in ABAP® für Anfänger
0
Antw.
1033
Views
BW Query abfragen
von ewx » 10.09.2014 13:15 • Verfasst in ABAP® Core
4
Antw.
3239
Views
Berechtigungen abfragen
von Banney88 » 25.05.2010 08:51 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag

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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 515
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2149
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8744