b7-Anwender-Frühstück: Grundlagen komplexe Datentypen Fortsetzung
b7-Anwender-Frühstück: Grundlagen komplexe Datentypen Fortsetzung
Veranstaltungsdatum:
 
23.11.2023
 
8:30
 Uhr
 
23.11.2023

Bei einem gemeinsamen (virtuellen) Frühstück ein paar Tipps und Tricks rund um Sage b7 erfahren? - Termin verpasst? - Jetzt nachlesen!

Thema:

  • Grundlagen komplexe Datentypen Fortsetzung

Beschreibung:

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.

Hinweise zur Veranstaltung:      

  • Die Teilnahme am b7-Anwender-Frühstück ist kostenlos.
  • Die Teams-Sitzungen finden an jedem vierten Donnerstag im Monat statt von 08:30 bis 09:30 Uhr. Fällt der Termin auf einen Feiertag, fällt diese Sitzung aus.
  • In den Sitzungen kann Werbung der SuA-Wendte GmbH oder Drittanbietern enthalten sein.
  • Die gezeigten Lösungen und Beispiele beziehen sich auf den aktuellen Sage b7 Release. Soweit Unterschiede zu anderen Releases bekannt sind, wird auf diese eingegangen.
  • Im Anschluss an den Vortrag verbleiben etwa 15 bis 20 Minuten, um Fragen (auch  zu anderen Themen) zu stellen.

Nachbearbeitung:

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
}