Code: Alles auswählen.
PROGRAM UPDATE_ROUTINE.
*$*$ begin of global - insert your declaration only below this line *-*
* TABLES: ...
* DATA: ...
FORM read_validfrom
USING iv_{selection citeria} TYPE {type of selection citeria}
CHANGING cv_valid_from TYPE {type of VALID_FROM or RESULT}.
STATICS:
st_table TYPE STANDARD TABLE OF tabelle.
DATA:
ls_table LIKE LINE OF st_table.
FIELD-SYMBOLS:
<lw_table> LIKE LINE OF st_table.
* lookup in table
READ TABLE st_table ASSIGNING <lw_table>
WITH KEY
{selection citeria} = iv_{selection citeria}
BINARY SEARCH. "use manually sorted table
IF sy-subrc NE 0.
* not found, then get from database
SELECT SINGLE *
FROM tabelle
INTO ls_table
WHERE {selection citeria} EQ iv_{selection citeria}.
IF sy-subrc EQ 0.
* and store in lookup table
INSERT ls_table INTO st_table INDEX sy-tabix
ASSIGNING <lw_table>.
ENDIF.
ENDIF.
IF <lw_table> IS ASSIGNED.
* get value for VALID_FROM
ENDIF.
ENDFORM.
*$*$ end of global - insert your declaration only before this line *-*
FORM compute_data_field
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
USING COMM_STRUCTURE LIKE /BIC/CSZKM_ZLMS_GP_KNE
RECORD_NO LIKE SY-TABIX
RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING RESULT LIKE /BIC/AZKM_O0100-VALIDFROM
RETURNCODE LIKE SY-SUBRC "Do not use!
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
*
*$*$ begin of routine - insert your code only below this line *-*
* fill the internal table "MONITOR", to make monitor entries
* result value of the routine
* select * from Tabelle where Feldname >= 400 (Einzelzusagen)
* RESULT = .
* call subroutine to get buffered value
PERFORM read_valid_from
USING {selection citeria}
CHANGING result.
* if abort is not equal zero, the update process will be canceled
ABORT = 0.
*$*$ end of routine - insert your code only before this line *-*
*
ENDFORM.
Code: Alles auswählen.
select * from Tabelle where Feldname >= 400 (Einzelzusagen)
soll da heissen, dass Du diese Zeile nur übernommen haben willst, wenn der Wert von VALIDFROM den Schwellwert hat/überschreitet?gruftassel hat geschrieben:ereglam hat geschrieben:Da hier der Wert von VALIDFROM scheinbar nicht benutzt wird, kann ich über den Sinn nur spekulieren.
Soweit ich weis, ist /BIC/CSZKM_ZLMS_GP_KNE die Struktur der Kommunikationsstruktur der InfoSource und in der Fortschreibung hast Du aktuell ein InfoObjekt VALIDFROM (o.ä.), zu dem Du einen Wert über diese Routine ermitteln willst.
Somit die Frage: auf Basis welcher Werte soll VALIDFROM bestimmt werden?
Es soll nur noch eine Befüllung aus dem Quellsystem stattfinden, wenn dass Feld ZVAILDFROM aus er Quelle den Wert 400 aufweisst.
wie ich vermutet habe...gruftassel hat geschrieben:Sowohl die R/§-Quelltabelle als auch die InfoSource heißen soereglam hat geschrieben:In welchem System ist die Tabelle ZKM_ZLMS_GP_KNE verfügbar? Ist das die InfoSource, von der Daten in das BW-Sytem geladen werden sollen?
Ich hoffe dass es jetzt klar ist. Vielen lieben Dank für alles.