of 26
7/25/2019 z Codingmask En
1/26
REPORT Z_CODINGMASK_EN.
* Deklaration TabellenTABLES: proj, prps, prpss, projs,
vsproj_cn, vsprps_cn, tcjed, tcj01, tcjet.
* Definition VariablenDATA: itab_tcjed TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: val(90).DATA: itab_tcjet TYPE tcjet OCCURS 0 WITH HEADER LINE.DATA: var(6).DATA: itab_proj TYPE proj OCCURS 0 WITH HEADER LINE,
itab_prps TYPE prps OCCURS 0 WITH HEADER LINE, itab_projs TYPE projs OCCURS 0 WITH HEADER LINE, itab_prpss TYPE prpss OCCURS 0 WITH HEADER LINE, itab_vsproj_cn TYPE vsproj_cn OCCURS 0 WITH HEADER LINE, itab_vsprps_cn TYPE vsprps_cn OCCURS 0 WITH HEADER LINE.DATA: variable1 TYPE i, variable2 TYPE i, variable3 TYPE i, variable4 TYPE i, variable5 TYPE i, variable6 TYPE i, variable7 TYPE i.DATA: variable_m1(7), variable_m2(7), variable_m3(7), variable_m4(7), variable_m5(7), variable_m6(7), variable_m7(7), variable_m8(7).DATA: itabelle_proj TYPE proj OCCURS 0 WITH HEADER LINE, itabelle_prps TYPE prps OCCURS 0 WITH HEADER LINE, itabelle_projs TYPE projs OCCURS 0 WITH HEADER LINE,
itabelle_prpss TYPE prpss OCCURS 0 WITH HEADER LINE, itabelle_vsproj_cn TYPE vsproj_cn OCCURS 0 WITH HEADER LINE, itabelle_vsprps_cn TYPE vsprps_cn OCCURS 0 WITH HEADER LINE.DATA: i_proj TYPE proj OCCURS 0 WITH HEADER LINE.DATA: counter TYPE i.DATA: read(7) TYPE c, lv_rc LIKE sy-subrc, projekt_neu(24) TYPE c.DATA: v1(1) TYPE c, v2(2) TYPE c, v3(3) TYPE c, v4(4) TYPE c,v5(5) TYPE c.DATA: interne_tabelle TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: variable_edkz(9) TYPE c. "changed from 8 to 9 to avoid an error
DATA: laenge TYPE c.* Variablendefinition fr sy-subrcDATA: var1_sy_subrc(2) TYPE c, var2_sy_subrc(2) TYPE c,var3_sy_subrc(2) TYPE c, var4_sy_subrc(2) TYPE c,var5_sy_subrc(2) TYPE c, var6_sy_subrc(2) TYPE c.DATA: laenge_proid TYPE c.DATA: itab_tcjed_s TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: variable_proid TYPE c.* Variable mit best.Lnge(darein soll das PS_Object geschrieben werden)DATA: variable_projekt1(1) TYPE c.DATA: variable_projekt2(2) TYPE c.DATA: variable_projekt3(3) TYPE c.DATA: variable_projekt4(4) TYPE c.
DATA: variable_projekt5(5) TYPE c.DATA: itab_tcjed_pruef TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: var1__sy_subrc(2) TYPE c, var2__sy_subrc(2) TYPE c,
7/25/2019 z Codingmask En
2/26
var3__sy_subrc(2) TYPE c, var4__sy_subrc(2) TYPE c,var5__sy_subrc(2) TYPE c, var6__sy_subrc(2) TYPE c.
* Eingabefeld fr mask_idSELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20) ty1. " for field mask_id.SELECTION-SCREEN POSITION 25.
PARAMETERS: mask_id LIKE tcjed-proid.SELECTION-SCREEN END OF LINE.
* Eingabefeld fr PS_ObjectSELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20) tx1. " for field projekt.SELECTION-SCREEN POSITION 25.PARAMETERS: projekt(24) TYPE c.SELECTION-SCREEN END OF LINE.
* InitializationINITIALIZATION.
MOVE 'PS_Object' TO tx1. MOVE 'mask_id' TO ty1.
* Titel festgelegt SET TITLEBAR 'T01'.
********** START-OF-SELECTION **********START-OF-SELECTION. CLEAR counter.* Abfrage des Eingabefeldes mask_id IF NOT mask_id IS INITIAL. ADD 1 TO counter. read = 'mask_id'.
ENDIF.* Abfrage des Eingabefeldes PS_Object IF NOT projekt IS INITIAL. ADD 1 TO counter. read = 'Projekt'. ENDIF.* Abfrage Zhler IF counter > '1'. MESSAGE ID 'KC' TYPE 'S' NUMBER '008'. ELSE. CASE read.
****************** 1.Fall: mask_id wird eingegeben ********************* WHEN 'mask_id'.
* Selektion Editionsmaske (tcjed) FREE itab_tcjed. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed WHERE proid = mask_id. IF sy-subrc NE 0. MESSAGE ID '00' TYPE 'S' NUMBER '002'. LEAVE LIST-PROCESSING. ELSE. ENDIF. WRITE:/ '@35@ tips and tricks' COLOR COL_POSITIVE HOTSPOT.
SKIP.SKIP.
* berprfung, ob Sonderzeichen der Editionsmasken in der tcj01
7/25/2019 z Codingmask En
3/26
* vorhanden sindSELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_pruef WHERE proid = mask_id. TRANSLATE itab_tcjed_pruef-posid USING 'X '. TRANSLATE itab_tcjed_pruef-posid USING '0 '. SELECT SINGLE * FROM tcj01. CONCATENATE tcj01-edkz1 tcj01-edkz2 tcj01-edkz3 tcj01-edkz4
tcj01-edkz5 tcj01-edkz6 tcj01-edkz7 tcj01-edkz8 INTO variable_edkz. IF NOT itab_tcjed_pruef-posid CO variable_edkz AND NOT itab_tcjed_pruef-posid IS INITIAL. WRITE:/'@3U@ Coding mask includes special characters' COLOR COL_NEGATIVE NO-GAP, 'which are not in table tcj01.' COLOR COL_NEGATIVE. ELSE. WRITE:/'Special characters of the coding mask are available in', 'table tcj01.'. ENDIF.
* Selektion Editionsmaske(tcjet) und Ausgabe SELECT SINGLE * FROM tcjet INTO CORRESPONDING FIELDS OF itab_tcjet WHERE proid = itab_tcjed-proid. PERFORM listengestaltung_editionsmaske.
* Selektion Sonderzeichen und Ausgabe SELECT * FROM tcj01. PERFORM listengestaltung_sonderzeichen. ENDSELECT. WRITE:/ 'for special characters' COLOR COL_POSITIVE HOTSPOT.
* Variable wird gefllt CONCATENATE mask_id '%' INTO var.
* Selektion (mask_id als Anfang) SELECT * FROM proj INTO TABLE itab_proj WHERE pspid LIKE var. SELECT * FROM prps INTO TABLE itab_prps WHERE posid LIKE var. SELECT * FROM projs INTO TABLE itab_projs WHERE pspid LIKE var. SELECT * FROM prpss INTO TABLE itab_prpss WHERE posid LIKE var.SELECT * FROM vsproj_cn INTO TABLE itab_vsproj_cn WHERE pspid LIKE var.SELECT * FROM vsprps_cn INTO TABLE itab_vsprps_cn WHERE posid LIKE var.
* Gestaltung der Liste SKIP. SKIP. SKIP. SKIP.
* Variablen werden gefllt (Zeilenanzahl der internen Tabellen) DESCRIBE TABLE itab_proj. variable1 = sy-tfill. DESCRIBE TABLE itab_prps. variable2 = sy-tfill. DESCRIBE TABLE itab_projs. variable3 = sy-tfill. DESCRIBE TABLE itab_prpss. variable4 = sy-tfill. DESCRIBE TABLE itab_vsproj_cn.
variable5 = sy-tfill. DESCRIBE TABLE itab_vsprps_cn. variable6 = sy-tfill.
7/25/2019 z Codingmask En
4/26
* Zeilenanzahl(insgesamt) wird errechnet variable7 = variable1 + variable2 + variable3 + variable4 + variable5 + variable6.* Zeilenanzahl(insgesamt) wird ausgegeben WRITE:/ variable7 COLOR COL_GROUP, 'entries for entered mask_id existing' COLOR COL_HEADING.
* Gestaltung der Liste ULINE AT /(55). SKIP. SKIP.
* Concatenate hngt die Felder mask_id, Sonderzeichen und '%' aneinander* > in Variablen schieben CONCATENATE mask_id tcj01-edkz1 '%' INTO variable_m1. CONCATENATE mask_id tcj01-edkz2 '%' INTO variable_m2. CONCATENATE mask_id tcj01-edkz3 '%' INTO variable_m3. CONCATENATE mask_id tcj01-edkz4 '%' INTO variable_m4.
CONCATENATE mask_id tcj01-edkz5 '%' INTO variable_m5. CONCATENATE mask_id tcj01-edkz6 '%' INTO variable_m6. CONCATENATE mask_id tcj01-edkz7 '%' INTO variable_m7. CONCATENATE mask_id tcj01-edkz8 '%' INTO variable_m8.
* wenn kein Sonderzeichen angegeben ist, wird Variable gelscht PERFORM variable_loeschen.
* Selektion der pspid's und posid's, die Sonderzeichen enthalten PERFORM pspid_posid_mit_sz.
* Ausgabe der pspid's und posid's, die Sonderzeichen enthalten PERFORM pspid_posid_mit_sz_ausgabe.
* Hotspots festlegen / Absprung festlegen PERFORM hotspots_absprung.
SKIP.SKIP. WRITE:/ '@35@ tips and tricks' COLOR COL_POSITIVE HOTSPOT.
****************** 2.Fall: PS_Object wird eingegeben ******************* WHEN 'project'.
WRITE:/ '@35@ tips und tricks' COLOR COL_POSITIVE HOTSPOT. SKIP.SKIP.
WRITE:/'information for PS_Object' COLOR COL_HEADING, projekt COLOR COL_GROUP. ULINE. SKIP.
***** Fr die Tabelle PROJ ***** FREE i_proj. SELECT SINGLE * FROM proj INTO CORRESPONDING FIELDS OF i_proj WHERE pspid = projekt. IF sy-subrc NE 0. var1_sy_subrc = sy-subrc. ELSE.
* Form selektiert Sonderzeichen PERFORM pruefung_und_sel_sz.
7/25/2019 z Codingmask En
5/26
* Prfung: Sind Sonderzeichen enthalten ? IF i_proj-pspid CA variable_edkz(laenge). WRITE:/ 'table PROJ' COLOR COL_KEY.* Stelle, an der das erste Sonderzeichen steht und Selektion* (Editionsmaske vorhanden oder nicht) PERFORM sz-stelle_und_mask_vorh.* Prfung: keine Sonderzeichen vorhanden
ELSE. WRITE:/ 'table PROJ' COLOR COL_KEY.* PS_Object nehmen, eins bis fnf Stellen lang, anschlieend von der* tcjed selektieren > Editionsmaske vorhanden oder nicht! laenge_proid = strlen( tcjed-proid ). variable_projekt1 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt1. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt2 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s
WHERE proid = variable_projekt2. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt3 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt3. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt4 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt4. IF NOT itab_tcjed_s IS INITIAL. ELSE.
variable_projekt5 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt5. IF NOT itab_tcjed_s IS INITIAL. ELSE. WRITE:/'there is no coding mask existing.'. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF.
* Ermittlung, ob der String (Projekt) gemss seinem Editionsschlssel* editiert werden kann. EDIT nach Projekt_Neu. Unterscheiden sich* Projekt und Projekt_Neu (und es gab keinen Error), dann ist die* Editierung ohne Fehler mglich CALL FUNCTION 'CJPN_PROJEKTNUMMER_EDIT' EXPORTING input = projekt IMPORTING output = projekt_neu EXCEPTIONS error_messages = 99. IF NOT ( projekt NE projekt_neu AND sy-subrc IS INITIAL ).
WRITE:/ '@3U@ inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'existing' COLOR COL_NEGATIVE.
7/25/2019 z Codingmask En
6/26
WRITE:/ projekt. ELSE. WRITE:/'no inconsistency found.'. WRITE:/ projekt. ENDIF. ENDIF. ENDIF.
* Gestaltung Liste SKIP.
***** Fr die Tabelle PRPS ***** DATA: i_prps TYPE prps OCCURS 0 WITH HEADER LINE. FREE i_prps. SELECT SINGLE * FROM prps INTO CORRESPONDING FIELDS OF i_prps WHERE posid = projekt. IF sy-subrc NE 0. var2_sy_subrc = sy-subrc. ELSE.
PERFORM pruefung_und_sel_sz. IF i_prps-posid CA variable_edkz(laenge). WRITE:/ 'table PRPS' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table PRPS' COLOR COL_KEY.* PS_Object nehmen, eins bis fnf Stellen lang, anschlieend von der* tcjed selektieren > Editionsmaske vorhanden oder nicht !!!* und Ermittlung, ob Projekt editiert werden kann PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.
* Gestaltung Liste SKIP.
***** Fr die Tabelle PROJS ***** DATA: i_projs TYPE projs OCCURS 0 WITH HEADER LINE. FREE i_projs. SELECT SINGLE * FROM projs INTO CORRESPONDING FIELDS OF i_projs WHERE pspid = projekt. IF sy-subrc NE 0. var3_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_projs-pspid CA variable_edkz(laenge). WRITE:/ 'table PROJS' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table PROJS' COLOR COL_KEY. PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.
* Gestaltung Liste SKIP.
***** Fr die Tabelle PRPSS *****
DATA: i_prpss TYPE prpss OCCURS 0 WITH HEADER LINE. FREE i_prpss. SELECT SINGLE * FROM prpss INTO CORRESPONDING FIELDS OF i_prpss
7/25/2019 z Codingmask En
7/26
WHERE posid = projekt. IF sy-subrc NE 0. var4_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_prpss-posid CA variable_edkz(laenge). WRITE:/ 'table PRPSS' COLOR COL_KEY.
PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table PRPSS' COLOR COL_KEY. PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.
* Gestaltung Liste SKIP.
***** Fr die Tabelle VSPROJ_CN ***** DATA: i_vsproj_cn TYPE vsproj_cn OCCURS 0 WITH HEADER LINE.
FREE i_vsproj_cn. SELECT SINGLE * FROM vsproj_cn INTO CORRESPONDING FIELDS OF i_vsproj_cn WHERE pspid = projekt. IF sy-subrc NE 0. var5_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_vsproj_cn-pspid CA variable_edkz(laenge). WRITE:/ 'table VSPROJ_CN' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table VSPROJ_CN' COLOR COL_KEY.
PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.
* Gestaltung Liste SKIP.
***** Fr die Tabelle VSPRPS_CN ***** DATA: i_vsprps_cn TYPE vsprps_cn OCCURS 0 WITH HEADER LINE. FREE i_vsprps_cn. SELECT SINGLE * FROM vsprps_cn INTO CORRESPONDING FIELDS OF i_vsprps_cn WHERE posid = projekt. IF sy-subrc NE 0. var6_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_vsprps_cn-posid CA variable_edkz(laenge). WRITE:/ 'table VSPRPS_CN' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table VSPRPS_CN' COLOR COL_KEY. PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.
* Aufruf Form Editionsmaske und Ausgabe SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed
7/25/2019 z Codingmask En
8/26
WHERE proid = v1 OR proid = v2 OR proid = v3 OR proid = v4 OR proid = v5. SELECT SINGLE * FROM tcjet INTO CORRESPONDING FIELDS OF itab_tcjet WHERE proid = itab_tcjed-proid.
* Prfung: Editionsmaske vorhanden ? IF NOT itab_tcjed IS INITIAL AND NOT itab_tcjet IS INITIAL. ULINE AT /(57). ELSE. SKIP. ULINE AT /(57). ENDIF.
* Aufruf Form Sonderzeichen und Ausgabe SELECT * FROM tcj01. PERFORM listengestaltung_sonderzeichen. ENDSELECT.
WRITE:/ 'for special characters' COLOR COL_POSITIVE HOTSPOT.************************** 2.Fall mit unedit **************************** projekt nehmen, eins bis fnf Stellen lang, anschlieend von der* tcjed selektieren > Editionsmaske vorhanden oder nicht ! laenge_proid = strlen( tcjed-proid ). variable_projekt1 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt1. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt2 = projekt.
SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt2. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt3 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt3. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt4 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt4. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt5 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt5. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. WRITE:/'there is no coding mask existing.'. ENDIF.
ENDIF. ENDIF. ENDIF.
7/25/2019 z Codingmask En
9/26
ENDIF.* berprfung, ob Sonderzeichen der Editionsmasken in der tcj01* vorhanden sind SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_pruef WHERE proid = mask_id. TRANSLATE itab_tcjed_pruef-posid USING 'X '. TRANSLATE itab_tcjed_pruef-posid USING '0 '.
SELECT SINGLE * FROM tcj01. CONCATENATE tcj01-edkz1 tcj01-edkz2 tcj01-edkz3 tcj01-edkz4tcj01-edkz5 tcj01-edkz6 tcj01-edkz7 tcj01-edkz8 INTO variable_edkz. IF NOT itab_tcjed_pruef-posid CO variable_edkz AND NOT itab_tcjed_pruef-posid IS INITIAL. WRITE:/'@3U@ Coding mask includes special characters' COLOR COL_NEGATIVE NO-GAP, 'which are not available in table tcj01.' COLOR COL_NEGATIVE. ELSE. WRITE:/'Special characters of the coding mask area available in', 'table tcj01.'.
ENDIF.* UNEDIT, um eventuell vom User eingegebene Sonderzeichen zu eliminieren CALL FUNCTION 'CJPN_PROJEKTNUMMER_UNEDIT' EXPORTING input = projekt IMPORTING output = projekt rcode = lv_rc. IF NOT lv_rc IS INITIAL. MESSAGE i001(cj) WITH 'aha' space space space. ENDIF.
* Selektion mit Abfrage sy-subrc SELECT SINGLE * FROM proj INTO CORRESPONDING FIELDS OF i_proj WHERE pspid = projekt. IF sy-subrc NE 0. var1__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM prps INTO CORRESPONDING FIELDS OF i_prps WHERE posid = projekt. IF sy-subrc NE 0. var2__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM projs INTO CORRESPONDING FIELDS OF i_projs WHERE pspid = projekt. IF sy-subrc NE 0. var3__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM prpss INTO CORRESPONDING FIELDS OF i_prpss WHERE posid = projekt. IF sy-subrc NE 0. var4__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM vsproj_cn INTO CORRESPONDING FIELDS OF i_vsproj_cn WHERE pspid = projekt. IF sy-subrc NE 0.
var5__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM vsprps_cn INTO CORRESPONDING FIELDS OF
7/25/2019 z Codingmask En
10/26
i_vsprps_cn WHERE posid = projekt. IF sy-subrc NE 0. var6__sy_subrc = sy-subrc. ENDIF.
* Ausgabe der internen Tabellen
LOOP AT i_proj. WRITE:/ i_proj-pspnr, ' ', i_proj-pspid, ' ', i_proj-post1. ENDLOOP. LOOP AT i_prps. WRITE:/ i_prps-pspnr, ' ', i_prps-posid, ' ', i_prps-post1. ENDLOOP. LOOP AT i_projs. WRITE:/ i_projs-pspnr, ' ', i_projs-pspid, ' ', i_projs-post1. ENDLOOP. LOOP AT i_prpss. WRITE:/ i_prpss-pspnr, ' ', i_prpss-posid, ' ', i_prpss-post1. ENDLOOP.
LOOP AT i_vsproj_cn. WRITE:/ i_vsproj_cn-pspnr, ' ', i_vsproj_cn-pspid, ' ', i_vsproj_cn-post1. ENDLOOP. LOOP AT i_vsprps_cn. WRITE:/ i_vsprps_cn-pspnr, ' ', i_vsprps_cn-posid, ' ', i_vsprps_cn-post1. ENDLOOP.
SKIP.SKIP. WRITE:/ '@35@ tips and tricks' COLOR COL_POSITIVE HOTSPOT.
* Wenn Projekt nicht vorhanden > Fehlermeldung
IF var1_sy_subrc NE 0 AND var2_sy_subrc NE 0 AND var3_sy_subrc NE 0 AND var4_sy_subrc NE 0 AND var5_sy_subrc NE 0 AND var6_sy_subrc NE 0 AND var1__sy_subrc NE 0 AND var2__sy_subrc NE 0 AND var3__sy_subrc NE 0 AND var4__sy_subrc NE 0 AND var5__sy_subrc NE 0 AND var6__sy_subrc NE 0. MESSAGE ID '00' TYPE 'S' NUMBER '002'. LEAVE LIST-PROCESSING. ELSE. ENDIF.
ENDCASE. ENDIF.
* Absprung und Absprungziele festgelegtAT LINE-SELECTION. GET CURSOR VALUE val. CASE val. WHEN 'for coding mask'. CALL TRANSACTION 'OPSJ'. SET SCREEN 0. WHEN 'for special characters'. CALL TRANSACTION 'OPSK'. SET SCREEN 0. WHEN '==> table PROJ'.
PERFORM projnr_ausgabe_proj. SET SCREEN 0. WHEN '==> table PRPS'.
7/25/2019 z Codingmask En
11/26
PERFORM projnr_ausgabe_prps. SET SCREEN 0. WHEN '==> table PROJS'. PERFORM projnr_ausgabe_projs. SET SCREEN 0. WHEN '==> table PRPSS'. PERFORM projnr_ausgabe_prpss.
SET SCREEN 0. WHEN '==> table VSPROJ_CN'. PERFORM projnr_ausgabe_vsproj_cn. SET SCREEN 0. WHEN '==> table VSPRPS_CN'. PERFORM projnr_ausgabe_vsprps_cn. SET SCREEN 0.********************* WHEN '@35@ tips and tricks'. PERFORM tipps_und_tricks. SET SCREEN 0.*********************
ENDCASE.*& **& Form Listengestaltung_Editionsmaske*& ** text* ** > p1 text* < p2 text* *FORM listengestaltung_editionsmaske.
SKIP.
ULINE AT /(118). WRITE:/ sy-vline, 'PRID' COLOR COL_HEADING , 9 sy-vline, ' coding mask' COLOR COL_HEADING , 36 sy-vline, 'shorttext' COLOR COL_HEADING , 79 sy-vline, 'lockop' COLOR COL_HEADING, 89 sy-vline, 'lockstd' COLOR COL_HEADING , 100 sy-vline, 'language key' COLOR COL_HEADING , 118 sy-vline. ULINE AT /(118). WRITE:/ sy-vline, itab_tcjed-proid, sy-vline, itab_tcjed-posid,sy-vline, itab_tcjet-ktext, sy-vline, itab_tcjed-neusp, 89 sy-vline, itab_tcjed-neuss, 100 sy-vline, itab_tcjet-sprsl, 118 sy-vline. ULINE AT /(118). WRITE:/ 'for coding mask' COLOR COL_POSITIVE HOTSPOT. SKIP.SKIP.SKIP. ULINE AT /(57).
ENDFORM. " Listengestaltung_Editionsmaske
*& **& Form Listengestaltung_Sonderzeichen
*& ** text* *
7/25/2019 z Codingmask En
12/26
* > p1 text* < p2 text* *FORM listengestaltung_sonderzeichen.
WRITE: / sy-vline, 'special character' COLOR COL_HEADING , 57 sy-vline. ULINE AT /(57).
WRITE: / sy-vline, 'LP', 5 sy-vline, 'SL', 9 sy-vline, 'SZ',13 sy-vline, 'SZ', 17 sy-vline, 'SZ', 21 sy-vline,'SZ', 25 sy-vline,'SZ', 29 sy-vline, 'SZ', 33 sy-vline, 'SZ', 37 sy-vline, 'SZ', 41sy-vline, 'SZ', 45 sy-vline, 'Edit', 49 sy-vline, 'ANr', 57 sy-vline. ULINE AT /(57). WRITE: / sy-vline, tcj01-argum, sy-vline, tcj01-strkz, sy-vline, tcj01-artkz, sy-vline, tcj01-edkz1, sy-vline, tcj01-edkz2, sy-vline,
tcj01-edkz3, sy-vline, tcj01-edkz4, sy-vline, tcj01-edkz5, sy-vline, tcj01-edkz6, sy-vline, tcj01-edkz7, sy-vline, tcj01-edkz8, sy-vline, tcj01-edit, sy-vline, tcj01-tmpr, 57 sy-vline. ULINE AT /(57).
ENDFORM. " Listengestaltung_Sonderzeichen
*& *
*& Form Variable_loeschen*& ** text* ** > p1 text* < p2 text* *FORM variable_loeschen.
IF tcj01-edkz1 IS INITIAL. CLEAR variable_m1. ELSE. ENDIF. IF tcj01-edkz2 IS INITIAL. CLEAR variable_m2. ELSE. ENDIF. IF tcj01-edkz3 IS INITIAL. CLEAR variable_m3. ELSE. ENDIF. IF tcj01-edkz4 IS INITIAL. CLEAR variable_m4. ELSE. ENDIF.
IF tcj01-edkz5 IS INITIAL. CLEAR variable_m5. ELSE.
7/25/2019 z Codingmask En
13/26
ENDIF. IF tcj01-edkz6 IS INITIAL. CLEAR variable_m6. ELSE. ENDIF. IF tcj01-edkz7 IS INITIAL. CLEAR variable_m7.
ELSE. ENDIF. IF tcj01-edkz8 IS INITIAL. CLEAR variable_m8. ELSE. ENDIF.
ENDFORM. " Variable_loeschen
*& **& Form pspid_posid_mit_SZ*& *
* text* ** > p1 text* < p2 text* *FORM pspid_posid_mit_sz.
* Selektion der pspid's, die Sonderzeichen enthalten SELECT * FROM proj INTO TABLE itabelle_proj WHERE pspid LIKE variable_m6 OR pspid LIKE variable_m1 OR pspid LIKE variable_m2 OR pspid LIKE variable_m3
OR pspid LIKE variable_m4 OR pspid LIKE variable_m5 OR pspid LIKE variable_m7 OR pspid LIKE variable_m8.* Selektion der posid's, die Sonderzeichen enthalten SELECT * FROM prps INTO TABLE itabelle_prps WHERE posid LIKE variable_m6 OR posid LIKE variable_m1 OR posid LIKE variable_m2 OR posid LIKE variable_m3 OR posid LIKE variable_m4 OR posid LIKE variable_m5 OR posid LIKE variable_m7 OR posid LIKE variable_m8.* Selektion der pspid's, die Sonderzeichen enthalten SELECT * FROM projs INTO TABLE itabelle_projs WHERE pspid LIKE variable_m6 OR pspid LIKE variable_m1 OR pspid LIKE variable_m2 OR pspid LIKE variable_m3 OR pspid LIKE variable_m4 OR pspid LIKE variable_m5 OR pspid LIKE variable_m7 OR pspid LIKE variable_m8.* Selektion der posid's, die Sonderzeichen enthalten
SELECT * FROM prpss INTO TABLE itabelle_prpss WHERE posid LIKE variable_m6 OR posid LIKE variable_m1
7/25/2019 z Codingmask En
14/26
OR posid LIKE variable_m2 OR posid LIKE variable_m3 OR posid LIKE variable_m4 OR posid LIKE variable_m5 OR posid LIKE variable_m7 OR posid LIKE variable_m8.* Selektion der pspid's, die Sonderzeichen enthalten
SELECT * FROM vsproj_cn INTO TABLE itabelle_vsproj_cn WHERE pspid LIKE variable_m6 OR pspid LIKE variable_m1 OR pspid LIKE variable_m2 OR pspid LIKE variable_m3 OR pspid LIKE variable_m4 OR pspid LIKE variable_m5 OR pspid LIKE variable_m7 OR pspid LIKE variable_m8.* Selektion der posid's, die Sonderzeichen enthalten SELECT * FROM vsprps_cn INTO TABLE itabelle_vsprps_cn WHERE posid LIKE variable_m6
OR posid LIKE variable_m1 OR posid LIKE variable_m2 OR posid LIKE variable_m3 OR posid LIKE variable_m4 OR posid LIKE variable_m5 OR posid LIKE variable_m7 OR posid LIKE variable_m8.
ENDFORM. " pspid_posid_mit_SZ
*& **& Form pspid_posid_mit_SZ_Ausgabe*& *
* text* ** > p1 text* < p2 text* *FORM pspid_posid_mit_sz_ausgabe.
* Ausgabe der pspid's IF NOT itabelle_proj[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PROJ existing' COLOR COL_NEGATIVE. LOOP AT itabelle_proj. WRITE:/ itabelle_proj-pspid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.* Ausgabe der posid's IF NOT itabelle_prps[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PRPS existing' COLOR COL_NEGATIVE. LOOP AT itabelle_prps.
WRITE:/ itabelle_prps-posid USING NO EDIT MASK. ENDLOOP. ELSE.
7/25/2019 z Codingmask En
15/26
ENDIF.* Ausgabe der pspid's IF NOT itabelle_projs[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PROJS existing' COLOR COL_NEGATIVE.
LOOP AT itabelle_projs. WRITE:/ itabelle_projs-pspid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.* Ausgabe der posid's IF NOT itabelle_prpss[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PRPSS existing' COLOR COL_NEGATIVE. LOOP AT itabelle_prpss.
WRITE:/ itabelle_prpss-posid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.* Ausgabe der pspid's IF NOT itabelle_vsproj_cn[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table VSPROJ_CN existing' COLOR COL_NEGATIVE. LOOP AT itabelle_vsproj_cn. WRITE:/ itabelle_vsproj_cn-pspid USING NO EDIT MASK. ENDLOOP.
ELSE. ENDIF.* Ausgabe der posid's IF NOT itabelle_vsprps_cn[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table VSPRPS_CN existing' COLOR COL_NEGATIVE. LOOP AT itabelle_vsprps_cn. WRITE:/ itabelle_vsprps_cn-posid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.
ENDFORM. " pspid_posid_mit_SZ_Ausgabe
*& **& Form Hotspots_Absprung*& ** text* ** > p1 text* < p2 text* *FORM hotspots_absprung.
SKIP. IF NOT variable1 = '0'.
7/25/2019 z Codingmask En
16/26
WRITE:/ variable1 COLOR COL_GROUP, 'Entry in table PROJ existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PROJ' COLOR COL_POSITIVE HOTSPOT . ELSE. ENDIF.
ENDIF.
SKIP. IF NOT variable2 = '0'. WRITE:/ variable2 COLOR COL_GROUP, 'Entry in table PRPS existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PRPS' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.
SKIP. IF NOT variable3 = '0'. WRITE:/ variable3 COLOR COL_GROUP, 'Entry in table PROJS existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PROJS' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.
SKIP.
IF NOT variable4 = '0'. WRITE:/ variable4 COLOR COL_GROUP, 'Entry in table PRPSS existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PRPSS' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.
SKIP. IF NOT variable5 = '0'. WRITE:/ variable5 COLOR COL_GROUP, 'Entry in table VSPROJ_CN existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table VSPROJ_CN ' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.
SKIP. IF NOT variable6 = '0'. WRITE:/ variable6 COLOR COL_GROUP, 'Entry in table VSPRPS_CN existing' COLOR COL_HEADING.
IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table VSPRPS_CN' COLOR COL_POSITIVE HOTSPOT.
7/25/2019 z Codingmask En
17/26
ELSE. ENDIF. ENDIF.
ENDFORM. " Hotspots_Absprung
*& *
*& Form projnr_ausgabe_proj*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_proj.
DESCRIBE TABLE itab_proj. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PROJ existing' COLOR COL_HEADING.
SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80). LOOP AT itab_proj. WRITE:/ sy-vline, itab_proj-pspnr USING NO EDIT MASK, sy-vline, itab_proj-pspnr, sy-vline, itab_proj-objnr, sy-vline. ULINE AT /(80).
ENDLOOP.
ENDFORM. " projnr_ausgabe_proj
*& **& Form projnr_ausgabe_prps*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_prps.
SKIP. SKIP. SKIP. DESCRIBE TABLE itab_prps. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PRPS existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING,
80 sy-vline. ULINE AT /(80). LOOP AT itab_prps.
7/25/2019 z Codingmask En
18/26
WRITE:/ sy-vline, itab_prps-pspnr USING NO EDIT MASK, sy-vline, itab_prps-pspnr, sy-vline, itab_prps-objnr, sy-vline. ULINE AT /(80). ENDLOOP.
ENDFORM. " projnr_ausgabe_prps
*& **& Form projnr_ausgabe_projs*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_projs.
SKIP. SKIP. SKIP. DESCRIBE TABLE itab_projs. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PROJS existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80).
LOOP AT itab_projs. WRITE:/ sy-vline, itab_projs-pspnr USING NO EDIT MASK, sy-vline, itab_projs-pspnr, sy-vline, itab_projs-objnr, sy-vline. ULINE AT /(80). ENDLOOP.
ENDFORM. " projnr_ausgabe_projs*& **& Form projnr_ausgabe_prpss*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_prpss.
SKIP. SKIP. SKIP. DESCRIBE TABLE itab_prpss. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PRPSS existing' COLOR COL_HEADING.
SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING,
7/25/2019 z Codingmask En
19/26
28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80). LOOP AT itab_prpss. WRITE:/ sy-vline, itab_prpss-pspnr USING NO EDIT MASK, sy-vline, itab_prpss-pspnr,
sy-vline, itab_prpss-objnr, sy-vline. ULINE AT /(80). ENDLOOP.
ENDFORM. " projnr_ausgabe_prpss*& **& Form projnr_ausgabe_vsproj_cn*& ** text* ** > p1 text
* < p2 text* *FORM projnr_ausgabe_vsproj_cn.
SKIP. SKIP. SKIP. DESCRIBE TABLE itab_vsproj_cn. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table VSPROJ_CN existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING,
28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80). LOOP AT itab_vsproj_cn. WRITE:/ sy-vline, itab_vsproj_cn-pspnr USING NO EDIT MASK, sy-vline, itab_vsproj_cn-pspnr, sy-vline, itab_vsproj_cn-objnr, sy-vline. ULINE AT /(80). ENDLOOP.
ENDFORM. " projnr_ausgabe_vsproj_cn*& **& Form projnr_ausgabe_vsprps_cn*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_vsprps_cn.
SKIP. SKIP.
SKIP. DESCRIBE TABLE itab_vsprps_cn. WRITE:/ sy-tfill COLOR COL_GROUP,
7/25/2019 z Codingmask En
20/26
'Entries in table VSPRPS_CN existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline.
ULINE AT /(80). LOOP AT itab_vsprps_cn. WRITE:/ sy-vline, itab_vsprps_cn-pspnr USING NO EDIT MASK, sy-vline, itab_vsprps_cn-pspnr, sy-vline, itab_vsprps_cn-objnr, sy-vline. ULINE AT /(80). ENDLOOP.
ENDFORM. " projnr_ausgabe_vsprps_cn*& **& Form Pruefung_und_Sel_SZ
*& ** text* ** > p1 text* < p2 text* *FORM pruefung_und_sel_sz.
* Selektion der Sonderzeichen SELECT * FROM tcj01. CONCATENATE tcj01-edkz1 tcj01-edkz2 tcj01-edkz3 tcj01-edkz4tcj01-edkz5 tcj01-edkz6 tcj01-edkz7 tcj01-edkz8 INTO variable_edkz. ENDSELECT.
laenge = strlen( variable_edkz ).
ENDFORM. " Pruefung_und_Sel_SZ*& **& Form SZ-Stelle_und_Mask_vorh*& ** text* ** > p1 text* < p2 text* *FORM sz-stelle_und_mask_vorh.
* Stelle, an der das erste Sonderzeichen steht IF sy-fdpos = 0. ELSEIF sy-fdpos = 1. v1 = projekt. ELSEIF sy-fdpos = 2. v2 = projekt. ELSEIF sy-fdpos = 3. v3 = projekt. ELSEIF sy-fdpos = 4. v4 = projekt. ELSEIF sy-fdpos = 5. v5 = projekt.
ENDIF.
* Selektion (Editionsmaske vorhanden oder nicht)
7/25/2019 z Codingmask En
21/26
SELECT * FROM tcjed INTO TABLE interne_tabelle WHERE proid LIKE v1 OR proid LIKE v2 OR proid LIKE v3 OR proid LIKE v4 OR proid LIKE v5.
IF NOT interne_tabelle[] IS INITIAL. WRITE:/ '@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'existing' COLOR COL_NEGATIVE. WRITE:/ projekt. ELSE. WRITE:/'No inconsistency found.'. WRITE:/ projekt. ENDIF.
ENDFORM. " SZ-Stelle_und_Mask_vorh*& *
*& Form Editionsmaske_Ausgabe*& ** text* ** > p1 text* < p2 text* *FORM editionsmaske_ausgabe.
SKIP. ULINE AT /(36). WRITE:/ sy-vline, 'PRID' COLOR COL_HEADING , 9 sy-vline, ' coding mask' COLOR COL_HEADING,
36 sy-vline. ULINE AT /(36). WRITE:/ sy-vline, itab_tcjed_s-proid, sy-vline, itab_tcjed_s-posid,sy-vline. ULINE AT /(36). WRITE:/ 'for coding mask' COLOR COL_POSITIVE HOTSPOT. SKIP.SKIP.SKIP.
ENDFORM. " Editionsmaske_Ausgabe*& **& Form Editionsmaske_vorhanden*& ** text* ** > p1 text* < p2 text* *FORM editionsmaske_vorhanden.
laenge_proid = strlen( tcjed-proid ). variable_projekt1 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OFitab_tcjed_s WHERE proid = variable_projekt1. IF NOT itab_tcjed_s IS INITIAL. ELSE.
variable_projekt2 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OFitab_tcjed_s WHERE proid = variable_projekt2.
7/25/2019 z Codingmask En
22/26
IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt3 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt3. IF NOT itab_tcjed_s IS INITIAL. ELSE.
variable_projekt4 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt4. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt5 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt5. IF NOT itab_tcjed_s IS INITIAL. ELSE. WRITE:/'there is no coding mask existing.'. ENDIF.
ENDIF. ENDIF. ENDIF. ENDIF. CALL FUNCTION 'CJPN_PROJEKTNUMMER_EDIT' EXPORTING input = projekt IMPORTING output = projekt_neu EXCEPTIONS error_messages = 99. IF NOT ( projekt NE projekt_neu AND sy-subrc IS INITIAL ).
WRITE:/'@3U@ Inconsistency between coding mask and db-table entry'NO-GAP COLOR COL_NEGATIVE, 'existing' COLOR COL_NEGATIVE. WRITE:/ projekt. ELSE. WRITE:/'No inconsistency found.'. WRITE:/ projekt. ENDIF.
ENDFORM. " Editionsmaske_vorhanden*& **& Form tipps_und_tricks*& ** text* ** > p1 text* < p2 text* *FORM tipps_und_tricks.
WRITE:/'Info for project coding mask' COLOR COL_GROUP. ULINE. SKIP. WRITE: /'Besides using internal and external numbers for projects and ',
/'WBS-element there is also the possibility to edit external numbers', /'by using project coding masks.'. SKIP.
7/25/2019 z Codingmask En
23/26
WRITE: /'Project coding masks are defined in customizing (see documentation).', /'For a defined key, numeric and/or alphanumeric segments divided by', /'special characters are set. The special characters are also defined', /'in customizing.'. SKIP. WRITE:
/'E.g. a project coding mask is defined with ID A12. Due to that all', /'projects beginning with A12 will be automatically edited using that', /'coding mask.'. SKIP. WRITE: /'However, project coding mask A12 cannot be created if there is', /'already a (standard) project or (standard) WBS-element existing ', /'as operative object or within a version beginning with A12.'. SKIP. WRITE: /'Reason: the new coding mask might be incompatible with these already', /'existing objects.'.
SKIP. WRITE: /'Example:', /'Project coding mask: A12-XXX.0000/XX', /'where: X: alphanumerical 0: numerical'. SKIP. WRITE: /'Within that example there is an alphanumerical segment with lenght of', /'three characters, a numerical segment with the length of four and ', /'an alphanumeric segment with the length of two characters. These are', /'separated with special characters (- . /).'. SKIP. WRITE:
/'This project coding mas cannot be created, if there is already a WBS-', /'element existing with A12ABCDEFG.'. SKIP. WRITE: /'A12 determines which coding mask is used', /'ABC first numeric segment', /'DEFG numeric segment'. SKIP. WRITE: /'That means within one segment there is a non numeric value (DEFG).'. SKIP. WRITE: /'Because of that transporting project coding masks between clients', /'or systems is critical. The transport itself is not doing any checks', /'and therefore will transport project coding mask A12-XXX.0000/XX', /'into the receiving client/system even though WBS-element A12ABCDEFG', /'does already exist in that system.'. SKIP. WRITE: /'Doing that will lead to the system no longer finding projects and', /'WBS-elements or errors when doing the conversion. Also a termination', /'with RPERF_ILLEGAL_STATEMENT in CJPN_PROJEKTNUMMER_UNEDIT(LCJPNF01)', /'might occur once the F4 help for (standard) project or (standard)', /'WBS-element is called.'. SKIP.
WRITE: /'Due to this a warning is processed when you do transport a project', /'coding mask (note no. 158714).'.
7/25/2019 z Codingmask En
24/26
SKIP. WRITE: /'In case of inconsistencies between the external number in tables ', /'PROJ, PRPS, PROJS, PRPSS and the project coding masks in table ', /'TCJED, the affected project coding masks have to be removed from', /'table TCJED by using an ABAP report', /'e.g.:',
/'REPORT DELTCJED.', /'TABLES: TCJED.', /'DELETE FROM TCJED WHERE PROID = `xxx.', /'*xxx muss den Editionsschlssel enthalten,', /'*z.B. Y oder ABC oder MS5T usw.', /'* Case sensitive!'. SKIP. WRITE: /'Inconsistencies will arise if the lenght of the external number does', /'not correspond with the length of the project coding mask or if the', /'existing character is an alphanumerc character within a numeric', /'segment of the project coding mask is existing'.
SKIP. WRITE: /'Projects and WBS-elements with a coding mask will be stored in the', /'database tables without the special characters.'. SKIP. WRITE: /'Numerical segments will be filled with leading zeroes.'. SKIP. WRITE: /'Alphanumerical segments will be stored right-aligned with leading', /'spaces.'. SKIP. WRITE:
/'Examples using project coding mask described above:'. SKIP. WRITE: /'A12-A.1/D results in A12 A0001 D in the database', /'A12-AB.123 results in A12 AB0123 in the database', /'A12-ABC results in A12ABC0000 in the database'. SKIP. WRITE: /'If you use modification described in note no. 49439, alphanumerical', /'segments will be stored left-aligned with following spaces:'. SKIP. WRITE: /'A12A 0001D', /'A12AB 0123', /'A12ABC0000'. SKIP. WRITE: /'This will affect the (generic) search for projects and WBS-', /'elements by using F4 help:'. SKIP. WRITE: /'In general F4 help is looking up strings in the database using the', /'not edited form.'. SKIP. WRITE:
/'Within the search string no special characters are allowed.', /'Also the leading zeroes within the alphanumerical segments and the', /'leading (or follwing spaces when note 49293 was applied) spaces',
7/25/2019 z Codingmask En
25/26
/'within the alphanumerical segments need to be considered.'. SKIP. WRITE: /'Example:', /'A12-A* the system will not find anything', /'A12A* without note 49493: the system will find only A12-ABC', /' with note 49293: the system will find all three',
'objects', /'A12+++0* the system will find all three objects'. SKIP. WRITE: /'If you want to change an already existing project coding mask in ', /'customizing the following rules apply:'. SKIP. WRITE: /'- You only can extend the coding mask by a new alphanumerical', /'segment.'. SKIP. WRITE:
/'- You only can change a numerical segment into an alphanumerical', /'one with the same length.'. SKIP. WRITE: /'The latter does have an impact on the display the project objects', /'(projects and WBS-elements) and the functionality to look up the', /'next free number.'. SKIP. WRITE: /'Example:', /'You use project coding mask: A-0000-00', /'and create project: A-0001.', /'The project will be stored as: A000100.'.
SKIP. WRITE: /'The numerical segment is filled with zeroes. Finding the next free', /'number with start value A-0001 returns with A-0002.', /'The system is selecting from the database using A000100'. SKIP. WRITE: /'You change the project coding mask to: A-0000-XX.'. SKIP. WRITE: /'Doing that changes the relevance of the filled in leading zeroes.', /'As we are dealing with an alphanumerical segment now, these zeroes', /'will be interpreted. Meaning the project will be displayed as:', /'A-0001-00.'. SKIP. WRITE: /'The function to find the next free number using start value A-0001', /'will find number A-0001! The system is looking with A0001 (two', /'spaces at the end of the search string) as start value.'. SKIP. WRITE: /'Looking up the next free number using A-0001-00 will find A-0001-01,', /'as the system is interpreting the last only numeric segment.'. SKIP. WRITE:
/'Please consider that effect before you change existing project', /'coding masks within active system installations/clients.'.
7/25/2019 z Codingmask En
26/26
ENDFORM. " tipps_und_tricks