Bei einem gemeinsamen (virtuellen) Frühstück ein paar Tipps und Tricks rund um Sage b7 erfahren? - Termin verpasst? - Jetzt nachlesen!
In diesem b7-Anwender-Frühstück möchten wir die CDT-Kenntnisse erweitern und mit den Grundlagen zur Programmierung mit CDTs in Sage b7 fortfahren.
Beispiele:
#-------------------------------------------------------------------------------
# 2023-10-24 Sven Wendte
# Anwenderfrühstück 2023-11-23
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
proc saw_20231123_1(identnrP, varP)
{
/*
unload saw_20231123.bsl
public saw_20231123.bsl
string identnrP = '11000011'
string varP = NULL
call saw_20231123_1(identnrP, varP)
*/
int gm0000HandleL
TstGq000 cdtTstL
TstGq000zus cdtTstZusatzL
int rcL
// TST-CDT neu generieren.
call g_define_TstGq000("saw_20231123_1")
cdtTstL = new TstGq000()
cdtTstZusatzL = bu_cdt_new("TstGq000zus")
gm0000HandleL = bu_load_modul("gm0000" , gm0000HandleL)
if gm0000HandleL <= 0
{
msg emsg "Fehler beim Aktivieren des Moduls gm0000"
return FAILURE
}
call gm0000_activate(gm0000HandleL)
call gm0000_init(cdtTstL , cdtTstZusatzL)
identnrGm0000E = identnrP
varGm0000E = NULL
cdtTstL=>fi_nr = FI_NR1
cdtTstL=>identnr = identnrP
cdtTstL=>var = varP
protoG0061Gm0000E = TRUE
rcL = gm0000_lesen(cdtTstL)
if rcL != OK
{
msg emsg "Fehler beim Lesen des Teilestamm <:identnrP>"
return on_error(FAILURE)
}
msg emsg "cdtTstL=>identnr <:(cdtTstL=>identnr)> cdtTstL=>bs <:(cdtTstL=>bs)> cdtTstL=>lgber <:(cdtTstL=>lgber)>"
call gm0000_deactivate(gm0000HandleL)
call gm0000_unload(gm0000HandleL)
unload gm0000.bsl
return OK
}
#-------------------------------------------------------------------------------
proc saw_20231123_2(identnrP, varP, feldnameP, wertP)
{
/*
unload saw_20231123.bsl
public saw_20231123.bsl
string identnrP = '11000011'
string varP = NULL
string feldnameP = 'bs'
string wertP = '10'
call saw_20231123_2(identnrP, varP, feldnameP, wertP)
*/
int gm0000HandleL
TstGq000 cdtTstL
TstGq000zus cdtTstZusatzL
int rcL
// TST-CDT neu generieren.
call g_define_TstGq000("saw_20231123_2")
cdtTstL = new TstGq000()
cdtTstZusatzL = bu_cdt_new("TstGq000zus")
gm0000HandleL = bu_load_modul("gm0000" , gm0000HandleL)
if gm0000HandleL <= 0
{
msg emsg "Fehler beim Aktivieren des Moduls gm0000"
return FAILURE
}
call gm0000_activate(gm0000HandleL)
call gm0000_init(cdtTstL , cdtTstZusatzL)
identnrGm0000E = identnrP
varGm0000E = NULL
cdtTstL=>fi_nr = FI_NR1
cdtTstL=>identnr = identnrP
cdtTstL=>var = varP
cdtTstL=>:feldnameP = wertP
rcL = gm0000_aendern(cdtTstL)
if rcL != OK
{
msg emsg "Fehler beim Ändern des Teilestamm <:identnrP>"
return on_error(FAILURE)
}
call gm0000_deactivate(gm0000HandleL)
call gm0000_unload(gm0000HandleL)
unload gm0000.bsl
return OK
}
#-------------------------------------------------------------------------------
proc saw_20231123_3(identnrP, varP, feldnameP, wertP)
{
/*
unload saw_20231123.bsl
public saw_20231123.bsl
string identnrP = '11000011'
string varP = NULL
string feldnameP = 'kn_esperre'
string wertP = '9'
call saw_20231123_3(identnrP, varP, feldnameP, wertP)
*/
int gm0000HandleL
TstGq000 cdtTstL
TstGq000zus cdtTstZusatzL
int rcL
// TST-CDT neu generieren.
call g_define_TstGq000("saw_20231123_3")
cdtTstL = new TstGq000()
cdtTstZusatzL = bu_cdt_new("TstGq000zus")
gm0000HandleL = bu_load_modul("gm0000" , gm0000HandleL)
if gm0000HandleL <= 0
{
msg emsg "Fehler beim Aktivieren des Moduls gm0000"
return FAILURE
}
call gm0000_activate(gm0000HandleL)
call gm0000_init(cdtTstL , cdtTstZusatzL)
identnrGm0000E = identnrP
varGm0000E = NULL
cdtTstL=>fi_nr = FI_NR1
cdtTstL=>identnr = identnrP
cdtTstL=>var = varP
cdtTstL=>:feldnameP = wertP
protoG0061Gm0000E = TRUE
rcL = gm0000_aendern(cdtTstL)
if rcL != OK
{
call bu_msg_errmsg("Gm0000", NULL)
return on_error(FAILURE)
}
call gm0000_deactivate(gm0000HandleL)
call gm0000_unload(gm0000HandleL)
unload gm0000.bsl
return OK
}
#-------------------------------------------------------------------------------
proc saw_20231123_4(identnrP, varP)
{
/*
unload saw_20231123.bsl
public saw_20231123.bsl
string identnrP = '11000011'
string varP = NULL
// einsL = 1
// zweiL = einsL
// msg emsg "einsL <:einsL> zweiL <:zweiL>"
// zweiL = 2
// msg emsg "einsL <:einsL> zweiL <:zweiL>"
//
// cdtTst_2L = cdtTstL
// msg emsg "cdtTstL=>bs <:(cdtTstL=>bs)> cdtTst_2L=>bs <:(cdtTst_2L=>bs)>"
//
// cdtTst_2L=>bs = '20'
// msg emsg "cdtTstL=>bs <:(cdtTstL=>bs)> cdtTst_2L=>bs <:(cdtTst_2L=>bs)>"
//
// call bu_cdt_clone(cdtTstL, cdtTst_3L)
// cdtTst_3L=>bs = '10'
// msg emsg "cdtTstL=>bs <:(cdtTstL=>bs)> cdtTst_3L=>bs <:(cdtTst_3L=>bs)>"
call saw_20231123_4(identnrP, varP)
*/
int gm0000HandleL
TstGq000 cdtTstL
TstGq000 cdtTst_2L
TstGq000 cdtTst_3L
TstGq000zus cdtTstZusatzL
int einsL
int zweiL
vars rcL
// TST-CDT neu generieren.
call g_define_TstGq000("saw_20231123_4")
cdtTstL = new TstGq000()
cdtTstZusatzL = bu_cdt_new("TstGq000zus")
cdtTst_2L = new TstGq000()
cdtTst_3L = new TstGq000()
gm0000HandleL = bu_load_modul("gm0000" , gm0000HandleL)
if gm0000HandleL <= 0
{
msg emsg "Fehler beim Aktivieren des Moduls gm0000"
return FAILURE
}
call gm0000_activate(gm0000HandleL)
call gm0000_init(cdtTstL , cdtTstZusatzL)
identnrGm0000E = identnrP
varGm0000E = NULL
cdtTstL=>fi_nr = FI_NR1
cdtTstL=>identnr = identnrP
cdtTstL=>var = varP
rcL = gm0000_lesen(cdtTstL)
if rcL != OK
{
msg emsg "Fehler beim Lesen des Teilestamm <:identnrP>"
return on_error(FAILURE)
}
einsL = 1
zweiL = einsL
msg emsg "einsL <:einsL> zweiL <:zweiL>"
zweiL = 2
msg emsg "einsL <:einsL> zweiL <:zweiL>"
cdtTst_2L = cdtTstL
msg emsg "cdtTstL=>bs <:(cdtTstL=>bs)> cdtTst_2L=>bs <:(cdtTst_2L=>bs)>"
cdtTst_2L=>bs = '20'
msg emsg "cdtTstL=>bs <:(cdtTstL=>bs)> cdtTst_2L=>bs <:(cdtTst_2L=>bs)>"
call bu_cdt_clone(cdtTstL, cdtTst_3L)
cdtTst_3L=>bs = '10'
msg emsg "cdtTstL=>bs <:(cdtTstL=>bs)> cdtTst_3L=>bs <:(cdtTst_3L=>bs)>"
call gm0000_deactivate(gm0000HandleL)
call gm0000_unload(gm0000HandleL)
unload gm0000.bsl
return OK
}
#-------------------------------------------------------------------------------
proc saw_20231123_5(aufnrP)
{
/*
unload saw_20231123.bsl
public saw_20231123.bsl
string aufnrP = '100289'
call saw_20231123_5(aufnrP)
*/
int rcL = OK
string handleVq100L
string handleVq110L
VvorgangVq100 vvorgangL
PositionVq110 positionenL
vars positionL
int anzahl_positionenL
handleVq100L = bu_load_qmodul("vq100", handleVq100L, FALSE, "vec210_angebot_eventhandler", $NULL)
if (handleVq100L == FAILURE)
{
return FAILURE
}
handleVq110L = bu_load_qmodul("vq110", handleVq110L, FALSE, $NULL, $NULL)
if (handleVq110L == FAILURE)
{
return FAILURE
}
vvorgangL = vq100_create(handleVq100L)
vvorgangL=>fi_nr = fi_nr
vvorgangL=>vvorgart = cVVORGART_AUFTRAG
vvorgangL=>aufnr = aufnrP
rcL = vq100_lesen(handleVq100L, vvorgangL)
log LOG_INFO, LOGFILE, bu_cdt_dump(vvorgangL)
anzahl_positionenL = md_get_arraysize(vvorgangL=>positionen, "position")
msg emsg "anzahl_positionenL <:anzahl_positionenL>"
positionenL = vq110_create(handleVq110L, vvorgangL, TRUE)
anzahl_positionenL = md_get_arraysize(vvorgangL=>positionen, "position")
msg emsg "anzahl_positionenL <:anzahl_positionenL>"
log LOG_INFO, LOGFILE, bu_cdt_dump(vvorgangL)
return rcL
}