Upload DMG
This commit is contained in:
291
DMG Dental/Geschäftspartner-ID ändern/DMG_gesch_id_wechsel.jpl
Normal file
291
DMG Dental/Geschäftspartner-ID ändern/DMG_gesch_id_wechsel.jpl
Normal file
@@ -0,0 +1,291 @@
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
//
|
||||
// Geschäftspartner-IDs ändern
|
||||
//
|
||||
// geschrieben von calb / 2019.01.23
|
||||
//
|
||||
// (c) d.velop AG 2019
|
||||
//
|
||||
//////////////////////////////////
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
//
|
||||
// Dieses Skript passt Geschäftspartner-ID von verschiedenen Dokumentarten an
|
||||
//
|
||||
vars vers = "0.1 calb d.AG/PS 2019.01.23 Initialversion"
|
||||
//
|
||||
//////////////////////////////////
|
||||
|
||||
// Konfiguration
|
||||
|
||||
|
||||
// debug = 1 => es werden keine Änderungen am Dokumentbestand durchgeführt
|
||||
// debug = 0 => es werden Änderungen am Dokumentbestand durchgeführt
|
||||
vars debug = 1
|
||||
|
||||
|
||||
// db_tabelle => Tabelle, in der die zu ändernden Werte gefunden werden.
|
||||
vars db_tabelle = "d3_mapping"
|
||||
|
||||
// spalte_alter_wert => DB-Spalte, in der der alte Wert gefunden werden kann
|
||||
vars spalte_alter_wert = "Kunde_alt"
|
||||
|
||||
// spalte_neuer_wert => DB-Spalte, in der der neue Wert gefunden werden kann
|
||||
vars spalte_neuer_wert = "Kunde_neu"
|
||||
|
||||
// spalte_status => DB-Spalte, in der der Status des Eintrags festgehalten wird
|
||||
vars spalte_status = "status"
|
||||
|
||||
// liste_dokuarten => Liste von Dokumentarten, in denen das Update durchgeführt werden soll
|
||||
vars liste_dokuarten = "AGSP,DMY,DKOR,DRECH,DVER,DKRE,DAGES,DGS,AAUF,DAB,DVPM,DFUEK,DESDO,DARTE,DLIEF,DVORK,DREKL,DGEAK"
|
||||
//vars liste_dokuarten = "EVERT,DFOT"
|
||||
|
||||
// zu_aenderndes_ddf => DDF, in welchem die Information geändert werden soll
|
||||
vars zu_aenderndes_ddf = "6"
|
||||
|
||||
//////////////////////////////////
|
||||
|
||||
|
||||
call dmglog( 4, "*********************************************" )
|
||||
call dmglog( 4, "* DMG_gesch_id_wechsel.jpl *" )
|
||||
call dmglog( 4, "* calb/d.velop AG *" )
|
||||
call dmglog( 4, "*********************************************" )
|
||||
call dmglog( 4, "* " ## vers )
|
||||
call dmglog( 4, "* db_tabelle : " ## db_tabelle )
|
||||
call dmglog( 4, "* spalte_alter_wert : " ## spalte_alter_wert )
|
||||
call dmglog( 4, "* spalte_neuer_wert : " ## spalte_neuer_wert )
|
||||
call dmglog( 4, "* spalte_status : " ## spalte_status )
|
||||
call dmglog( 4, "* liste_dokuarten : " ## liste_dokuarten )
|
||||
call dmglog( 4, "* zu_aenderndes_ddf : " ## zu_aenderndes_ddf )
|
||||
call dmglog( 4, "* DEBUG : " ## debug )
|
||||
|
||||
|
||||
// Los geht's ......
|
||||
|
||||
call dmglog( 4, "*********************************************" )
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
vars spalte_aw[5000], spalte_nw[5000]
|
||||
|
||||
vars doku_id[500000]
|
||||
|
||||
vars anzahl, anzahl2, i, j, k, dokuarten, ergebnis, kaputt
|
||||
|
||||
|
||||
kaputt = 0
|
||||
k = 0
|
||||
|
||||
// Zuerst ein Select auf die Tabelle, um festzustellen, was alles getan werden muss.
|
||||
|
||||
dbms alias spalte_aw, spalte_nw
|
||||
dbms sql select :spalte_alter_wert, :spalte_neuer_wert \
|
||||
from :db_tabelle \
|
||||
where :spalte_status = '' or :spalte_status is null
|
||||
anzahl = @dmrowcount
|
||||
dbms alias
|
||||
|
||||
call dmglog( 4, "Es wurden " ## anzahl ## " Treffer gefunden." )
|
||||
|
||||
// Aufbereiten der Dokumentartenliste:
|
||||
if ( @length( liste_dokuarten ) > 0 )
|
||||
{
|
||||
ergebnis = api_function( "string_replace", liste_dokuarten, " ", "" )
|
||||
|
||||
liste_dokuarten = api_converted_string
|
||||
|
||||
ergebnis = api_function( "string_split", liste_dokuarten, "," )
|
||||
|
||||
if ( ergebnis > 0 )
|
||||
{
|
||||
for j = 1 while j <= ergebnis step 1
|
||||
{
|
||||
dokuarten = dokuarten ## "'" ## api_splitted_string[ j ] ## "', "
|
||||
}
|
||||
|
||||
dokuarten = dokuarten( 1, @length(dokuarten) -1 )
|
||||
}
|
||||
|
||||
call dmglog( 5, "Dokuarten " ## dokuarten )
|
||||
}
|
||||
|
||||
call dmglog( 4, "*******************" )
|
||||
|
||||
|
||||
for i = 1 while i <= anzahl step 1
|
||||
{
|
||||
call dmglog( 4, i ## ": Alter Wert: " ## spalte_aw[ i ] ## " | Neuer Wert: " ## spalte_nw[ i ] )
|
||||
|
||||
call dmglog( 4, i ## ": Suche zu ändernde Dokumente ...")
|
||||
|
||||
dbms alias doku_id
|
||||
dbms sql select doku_id from firmen_spezifisch \
|
||||
where kue_dokuart in ( :dokuarten ) \
|
||||
and dok_dat_feld_:zu_aenderndes_ddf = :+spalte_aw[ i ]
|
||||
anzahl2 = @dmrowcount
|
||||
dbms alias
|
||||
|
||||
call dmglog( 4, i ## ": Es wurden " ## anzahl2 ## " zu ändernde Dokumente gefunden.")
|
||||
|
||||
call dmglog( 4, i ## ": ******************************************" )
|
||||
|
||||
for j = 1 while j <= anzahl2 step 1
|
||||
{
|
||||
k = 1
|
||||
call dmglog( 4, i ## ": bearbeite DokuID " ## doku_id[ j ] ## " ...")
|
||||
|
||||
if ( debug == 0 )
|
||||
{
|
||||
ergebnis = api_function( "attribute_update_single", zu_aenderndes_ddf, spalte_nw[ i ], "", doku_id[ j ], "Master" )
|
||||
}
|
||||
else
|
||||
{
|
||||
call dmglog( 3, i ## " / " ## j ## ": hier findet jetzt keine Dokumentänderung statt. \:-(")
|
||||
ergebnis = 0
|
||||
}
|
||||
|
||||
if ( ergebnis == 0 )
|
||||
{
|
||||
call dmglog( 4, i ## " / " ## j ## ": DokuID " ## doku_id[ j ] ## " erfolgreich aktualisiert." )
|
||||
}
|
||||
else
|
||||
{
|
||||
call dmglog( 2, i ## " / " ## j ## ": Fehler " ## ergebnis ## " beim Setzen des Attributes (attribute_update_single) bei DokuID " ## doku_id[ j ] )
|
||||
kaputt = 1
|
||||
}
|
||||
call dmglog( 4, i ## ": ==========================================" )
|
||||
|
||||
}
|
||||
|
||||
//call dmglog( 5, "kaputt: " ## kaputt )
|
||||
if ( debug == 0 )
|
||||
{
|
||||
if ( k == 1 )
|
||||
{
|
||||
if ( kaputt == 0 )
|
||||
{
|
||||
dbms sql update :db_tabelle set :spalte_status = 'fertig' where :spalte_alter_wert = :+spalte_aw[ i ] and :spalte_neuer_wert = :+spalte_nw[ i ]
|
||||
}
|
||||
else
|
||||
{
|
||||
dbms sql update :db_tabelle set :spalte_status = 'Problem' where :spalte_alter_wert = :+spalte_aw[ i ] and :spalte_neuer_wert = :+spalte_nw[ i ]
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dbms sql update :db_tabelle set :spalte_status = 'keine Treffer' where :spalte_alter_wert = :+spalte_aw[ i ] and :spalte_neuer_wert = :+spalte_nw[ i ]
|
||||
}
|
||||
}
|
||||
|
||||
kaputt = 0
|
||||
k = 0
|
||||
|
||||
call dmglog( 4, "*********************************************" )
|
||||
}
|
||||
|
||||
|
||||
|
||||
call dmglog( 4, "Bearbeitung abgeschlossen, DMG_gesch_id_wechsel.jpl beendet sich ..." )
|
||||
call dmglog( 4, "*********************************************" )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
proc dmglog( loglevel, message )
|
||||
{
|
||||
vars l_logdirect = "BEIDE"
|
||||
vars l_logdatei = "D\:\\d3\\apps\\log.txt"
|
||||
vars l_loglevel = 5
|
||||
|
||||
vars zeitstempel, loglevel_lang, d3loglevel, logmessage
|
||||
|
||||
if ( loglevel == 5 )
|
||||
{
|
||||
loglevel_lang = "DEBUG"
|
||||
// Da die d.3 Server i.d.R. nicht im Debug-Modus laufen, erscheinen DEBUG-Meldungen nicht im Log.
|
||||
d3loglevel = 9
|
||||
}
|
||||
|
||||
if ( loglevel == 4 )
|
||||
{
|
||||
loglevel_lang = "INFO."
|
||||
d3loglevel = 6
|
||||
}
|
||||
|
||||
if ( loglevel == 3 )
|
||||
{
|
||||
loglevel_lang = "WARN."
|
||||
d3loglevel = 6
|
||||
}
|
||||
|
||||
if ( loglevel == 2 )
|
||||
{
|
||||
loglevel_lang = "ERROR"
|
||||
d3loglevel = 0
|
||||
}
|
||||
|
||||
if ( loglevel == 1 )
|
||||
{
|
||||
loglevel_lang = "FATAL"
|
||||
d3loglevel = 0
|
||||
}
|
||||
|
||||
if ( loglevel <= l_loglevel )
|
||||
{
|
||||
|
||||
|
||||
if ( ( l_logdirect == "DATEI" ) || ( l_logdirect == "BEIDE" ) )
|
||||
{
|
||||
// Ausgabe in Datei
|
||||
zeitstempel = sm_sdtime( "n%4y.%0m.%0d %0h\:%0M\:%0s" )
|
||||
logmessage = zeitstempel ## " " ## loglevel_lang ## " " ## message
|
||||
call api_function( "file_add_line", l_logdatei, logmessage, "APPEND" )
|
||||
}
|
||||
|
||||
if ( ( l_logdirect == "D3LOG" ) || ( l_logdirect == "BEIDE" ) )
|
||||
{
|
||||
// Ausgabe im d.3 Log
|
||||
logmessage = loglevel_lang ## " " ## message
|
||||
call api_log( d3loglevel, logmessage )
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
87
DMG Dental/Geschäftspartner-ID ändern/readme.txt
Normal file
87
DMG Dental/Geschäftspartner-ID ändern/readme.txt
Normal file
@@ -0,0 +1,87 @@
|
||||
Rahmen
|
||||
======
|
||||
|
||||
Es sollen Geschäftspartner-IDs geändert werden. Bereitgestellt wird eine Tabelle, in der der alte und der neue Wert angegeben sind. Pro Kombination aus altem und neuem Wert kann es mehrere Dokumente geben, die zu ändern sind.
|
||||
|
||||
Die zugrundeliegende Tabelle sieht folgendermaßen aus:
|
||||
|
||||
CREATE TABLE [dbo].[d3_mapping](
|
||||
[Kunde_alt] [varchar](50) NULL,
|
||||
[Kunde_neu] [varchar](50) NULL,
|
||||
[status] [varchar](20) NULL
|
||||
)
|
||||
|
||||
|
||||
Log-Augabe
|
||||
==========
|
||||
|
||||
Die Log-Ausgaben wurden gekürzt. Es sollte hier aber klar sein was dabei rauskommt.
|
||||
|
||||
2019.01.24 12:13:58 INFO. *********************************************
|
||||
2019.01.24 12:13:58 INFO. * DMG_gesch_id_wechsel.jpl *
|
||||
2019.01.24 12:13:58 INFO. * calb/d.velop AG *
|
||||
2019.01.24 12:13:58 INFO. *********************************************
|
||||
2019.01.24 12:13:58 INFO. * 0.1 calb d.AG/PS 2019.01.23 Initialversion
|
||||
2019.01.24 12:13:58 INFO. * db_tabelle : d3_mapping
|
||||
2019.01.24 12:13:58 INFO. * spalte_alter_wert : Kunde_alt
|
||||
2019.01.24 12:13:58 INFO. * spalte_neuer_wert : Kunde_neu
|
||||
2019.01.24 12:13:58 INFO. * spalte_status : status
|
||||
2019.01.24 12:13:58 INFO. * liste_dokuarten : AGSP,DMY,DKOR,DRECH,DVER,DKRE,DAGES,DGS,AAUF,DAB,DVPM,DFUEK,DESDO,DARTE,DLIEF,DVORK,DREKL,DGEAK
|
||||
2019.01.24 12:13:58 INFO. * zu_aenderndes_ddf : 6
|
||||
2019.01.24 12:13:58 INFO. * DEBUG : 1
|
||||
2019.01.24 12:13:58 INFO. *********************************************
|
||||
2019.01.24 12:13:59 INFO. Es wurden 27 Treffer gefunden.
|
||||
2019.01.24 12:13:59 DEBUG Dokuarten 'AGSP','DMY','DKOR','DRECH','DVER','DKRE','DAGES','DGS','AAUF','DAB','DVPM','DFUEK','DESDO','DARTE','DLIEF','DVORK','DREKL','DGEAK'
|
||||
2019.01.24 12:13:59 INFO. *******************
|
||||
2019.01.24 12:13:59 INFO. 1: Alter Wert: 101800 | Neuer Wert: 37474
|
||||
2019.01.24 12:13:59 INFO. 1: Suche zu ändernde Dokumente ...
|
||||
2019.01.24 12:13:59 INFO. 1: Es wurden 2723 zu ändernde Dokumente gefunden.
|
||||
2019.01.24 12:13:59 INFO. 1: ******************************************
|
||||
2019.01.24 12:13:59 INFO. 1: bearbeite DokuID P003939873 ...
|
||||
2019.01.24 12:13:59 WARN. 1 / 1: hier findet jetzt keine Dokumentänderung statt. :-(
|
||||
2019.01.24 12:13:59 INFO. 1 / 1: DokuID P003939873 erfolgreich aktualisiert.
|
||||
2019.01.24 12:13:59 INFO. 1: ==========================================
|
||||
2019.01.24 12:13:59 INFO. 1: bearbeite DokuID P003939874 ...
|
||||
2019.01.24 12:13:59 WARN. 1 / 2: hier findet jetzt keine Dokumentänderung statt. :-(
|
||||
2019.01.24 12:13:59 INFO. 1 / 2: DokuID P003939874 erfolgreich aktualisiert.
|
||||
2019.01.24 12:13:59 INFO. 1: ==========================================
|
||||
2019.01.24 12:13:59 INFO. 1: bearbeite DokuID P003939875 ...
|
||||
2019.01.24 12:13:59 WARN. 1 / 3: hier findet jetzt keine Dokumentänderung statt. :-(
|
||||
2019.01.24 12:13:59 INFO. 1 / 3: DokuID P003939875 erfolgreich aktualisiert.
|
||||
2019.01.24 12:13:59 INFO. 1: ==========================================
|
||||
2019.01.24 12:13:59 INFO. 1: bearbeite DokuID P003939876 ...
|
||||
2019.01.24 12:13:59 WARN. 1 / 4: hier findet jetzt keine Dokumentänderung statt. :-(
|
||||
2019.01.24 12:13:59 INFO. 1 / 4: DokuID P003939876 erfolgreich aktualisiert.
|
||||
2019.01.24 12:13:59 INFO. 1: ==========================================
|
||||
[...]
|
||||
2019.01.24 12:15:11 INFO. *********************************************
|
||||
2019.01.24 12:15:11 INFO. 2: Alter Wert: 101801 | Neuer Wert: 37475
|
||||
2019.01.24 12:15:11 INFO. 2: Suche zu ändernde Dokumente ...
|
||||
2019.01.24 12:15:11 INFO. 2: Es wurden 0 zu ändernde Dokumente gefunden.
|
||||
2019.01.24 12:15:11 INFO. 2: ******************************************
|
||||
2019.01.24 12:15:11 INFO. *********************************************
|
||||
2019.01.24 12:15:11 INFO. 3: Alter Wert: 101802 | Neuer Wert: 37476
|
||||
2019.01.24 12:15:11 INFO. 3: Suche zu ändernde Dokumente ...
|
||||
2019.01.24 12:15:11 INFO. 3: Es wurden 0 zu ändernde Dokumente gefunden.
|
||||
2019.01.24 12:15:11 INFO. 3: ******************************************
|
||||
2019.01.24 12:15:11 INFO. *********************************************
|
||||
2019.01.24 12:15:11 INFO. 4: Alter Wert: 101803 | Neuer Wert: 37477
|
||||
2019.01.24 12:15:11 INFO. 4: Suche zu ändernde Dokumente ...
|
||||
2019.01.24 12:15:11 INFO. 4: Es wurden 3 zu ändernde Dokumente gefunden.
|
||||
2019.01.24 12:15:11 INFO. 4: ******************************************
|
||||
2019.01.24 12:15:11 INFO. 4: bearbeite DokuID P003800366 ...
|
||||
2019.01.24 12:15:11 WARN. 4 / 1: hier findet jetzt keine Dokumentänderung statt. :-(
|
||||
2019.01.24 12:15:11 INFO. 4 / 1: DokuID P003800366 erfolgreich aktualisiert.
|
||||
2019.01.24 12:15:11 INFO. 4: ==========================================
|
||||
2019.01.24 12:15:11 INFO. 4: bearbeite DokuID P003800369 ...
|
||||
2019.01.24 12:15:11 WARN. 4 / 2: hier findet jetzt keine Dokumentänderung statt. :-(
|
||||
2019.01.24 12:15:11 INFO. 4 / 2: DokuID P003800369 erfolgreich aktualisiert.
|
||||
2019.01.24 12:15:11 INFO. 4: ==========================================
|
||||
2019.01.24 12:15:11 INFO. 4: bearbeite DokuID P003800370 ...
|
||||
2019.01.24 12:15:11 WARN. 4 / 3: hier findet jetzt keine Dokumentänderung statt. :-(
|
||||
2019.01.24 12:15:11 INFO. 4 / 3: DokuID P003800370 erfolgreich aktualisiert.
|
||||
2019.01.24 12:15:11 INFO. 4: ==========================================
|
||||
[...]
|
||||
2019.01.24 12:15:43 INFO. *********************************************
|
||||
2019.01.24 12:15:43 INFO. Bearbeitung abgeschlossen, DMG_gesch_id_wechsel.jpl beendet sich ...
|
||||
2019.01.24 12:15:43 INFO. *********************************************
|
||||
Reference in New Issue
Block a user