| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268 |
- &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 - ADM2
- &ANALYZE-RESUME
- {adecomm/appserv.i}
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
- /*------------------------------------------------------------------------
- File :
- Purpose :
- Syntax :
- Description :
- Author(s) :
- Created :
- Notes :
- ----------------------------------------------------------------------*/
- /* This .W file was created with the Progress AppBuilder. */
- /*----------------------------------------------------------------------*/
- /* *************************** Definitions ************************** */
- DEFINE VARIABLE ObjRecordSet AS COMPONENT-HANDLE NO-UNDO.
- DEFINE VARIABLE ObjConnection AS COMPONENT-HANDLE NO-UNDO.
- DEFINE VARIABLE ObjCommand AS COMPONENT-HANDLE NO-UNDO.
- DEFINE VARIABLE ODBC-DSN AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ODBC-SERVER AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ODBC-USERID AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ODBC-PASSWD AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ODBC-QUERY AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ODBC-STATUS AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ODBC-RECCOUNT AS INTEGER NO-UNDO.
- DEFINE VARIABLE ODBC-NULL AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ODBC-CURSOR AS INTEGER NO-UNDO.
- DEFINE VARIABLE fEnde AS LOG NO-UNDO.
- DEFINE VARIABLE cTempName AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cTempDir AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cJournal AS CHARACTER NO-UNDO.
- DEFINE VARIABLE WebString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE AllesOK AS LOG NO-UNDO.
- DEFINE VARIABLE Sprcd AS INTEGER NO-UNDO.
- DEFINE VARIABLE LVAdx AS CHARACTER NO-UNDO EXTENT 15.
- DEFINE VARIABLE LVAdy AS CHARACTER NO-UNDO EXTENT 15.
- DEFINE VARIABLE cOrt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE Firma AS CHARACTER NO-UNDO INIT '9999'.
- DEFINE VARIABLE GVFirma AS CHARACTER NO-UNDO INIT '9999'.
- DEFINE VARIABLE ja AS LOG NO-UNDO.
- DEFINE VARIABLE CrLf AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
- DEFINE STREAM LogStream.
- DEFINE STREAM Logfile.
- DEFINE TEMP-TABLE tMwstBetr
- FIELD SammelKonto AS CHARACTER
- FIELD MwstCd AS INTEGER
- FIELD MwstPfl AS DECIMAL DECIMALS 2
- FIELD MwstBet AS DECIMAL DECIMALS 2
- FIELD MwstAns AS DECIMAL DECIMALS 2.
- DEFINE TEMP-TABLE tDebop
- FIELD DocType AS INTEGER
- FIELD OpId AS CHARACTER
- FIELD KndNr AS INTEGER
- FIELD SammelKonto AS CHARACTER
- FIELD OpText AS CHARACTER
- FIELD OpDate AS DATE
- FIELD ZabTyp AS CHARACTER
- FIELD SortId AS CHARACTER
- FIELD Firma AS CHARACTER
- FIELD Zusatz1 AS CHARACTER
- FIELD Strasse AS CHARACTER
- FIELD Plz AS CHARACTER
- FIELD Ort AS CHARACTER
- FIELD Telefon1 AS CHARACTER
- FIELD Telefon4 AS CHARACTER
- FIELD EsrNr AS CHARACTER
- FIELD Sprache AS CHARACTER
- FIELD iStatus AS INTEGER
-
- INDEX tDebop-k1 IS PRIMARY
- OpId
- .
- /*
- DEF TEMP-TABLE TDebDet FIELD DocKey AS CHAR.
- */
- DEFINE TEMP-TABLE TMwst
- FIELD MwstTyp AS CHARACTER
- FIELD MwstId AS CHARACTER.
- DEFINE TEMP-TABLE TZaKo
- FIELD ZabTyp AS CHARACTER
- FIELD ZabTyp2 AS CHARACTER.
- DEFINE TEMP-TABLE TDetail
- FIELD DocKey AS INTEGER
- FIELD DocLine AS INTEGER
- FIELD SammelKonto AS CHARACTER
- FIELD cText AS CHARACTER
- FIELD MwstTyp AS CHARACTER
- FIELD Betrag AS DECIMAL DECIMALS 2
- FIELD BetragMwst AS DECIMAL DECIMALS 2
- FIELD BetragFW AS DECIMAL DECIMALS 2
- FIELD BuchTyp AS CHARACTER
- FIELD Kostenstelle AS CHARACTER
- FIELD cCode AS CHARACTER
- FIELD iStatus AS INTEGER.
- DEFINE TEMP-TABLE TOpSaldo
- FIELD OpId AS CHARACTER
- FIELD PkNr AS INTEGER
- FIELD Betrag AS DECIMAL
- FIELD BetragFW AS DECIMAL
- INDEX Kunde IS PRIMARY
- PkNr
- INDEX Faknr
- OpId.
- DEFINE TEMP-TABLE TBeleg
- FIELD OpID AS CHARACTER
- FIELD KndNr AS INTEGER
- FIELD DocKey AS INTEGER
- INDEX Faknr IS PRIMARY
- OpID.
- DEFINE TEMP-TABLE TBelegDetail
- FIELD DocKey AS INTEGER
- FIELD DocLine AS INTEGER
- INDEX DokNr IS PRIMARY
- DocKey.
- DEFINE TEMP-TABLE xDetail
- FIELD DocKey AS INTEGER
- FIELD DocLine AS INTEGER
- FIELD Konto AS CHARACTER
- FIELD cText AS CHARACTER
- FIELD MwstTyp AS CHARACTER
- FIELD Betrag AS DECIMAL DECIMALS 2
- FIELD BetragMwst AS DECIMAL DECIMALS 2
- FIELD BetragFW AS DECIMAL DECIMALS 2
- FIELD BuchTyp AS CHARACTER
- FIELD Kostenstelle AS CHARACTER
- FIELD cCode AS CHARACTER
- FIELD iStatus AS INTEGER.
-
- DEFINE TEMP-TABLE xOpSaldo LIKE TOpSaldo.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
- /* ******************** Preprocessor Definitions ******************** */
- &Scoped-define PROCEDURE-TYPE Procedure
- &Scoped-define DB-AWARE no
- /* _UIB-PREPROCESSOR-BLOCK-END */
- &ANALYZE-RESUME
- /* ************************ Function Prototypes ********************** */
- &IF DEFINED(EXCLUDE-cancelSQLTransaction) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD cancelSQLTransaction Procedure
- FUNCTION cancelSQLTransaction RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CloseConnection) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CloseConnection Procedure
- FUNCTION CloseConnection RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-closeSQLTransaction) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD closeSQLTransaction Procedure
- FUNCTION closeSQLTransaction RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CreateConnection) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CreateConnection Procedure
- FUNCTION CreateConnection RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CreateSetDaten) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD CreateSetDaten Procedure
- FUNCTION CreateSetDaten RETURNS CHARACTER
- ( iphBuffer AS HANDLE, ipArt AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getDocKey) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getDocKey Procedure
- FUNCTION getDocKey RETURNS INTEGER
- ( ipDocKey AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getLogName) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getLogName Procedure
- FUNCTION getLogName RETURNS CHARACTER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getODBCDaten) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getODBCDaten Procedure
- FUNCTION getODBCDaten RETURNS LOGICAL
- ( iphBuffer AS HANDLE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-ifMwst) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD ifMwst Procedure
- FUNCTION ifMwst RETURNS LOGICAL
- ( ipMwstId AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-ifZaKo) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD ifZaKo Procedure
- FUNCTION ifZaKo RETURNS LOGICAL
- ( ipZabTyp AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-lesenBeleg) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD lesenBeleg Procedure
- FUNCTION lesenBeleg RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-lesenBelegDetail) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD lesenBelegDetail Procedure
- FUNCTION lesenBelegDetail RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-lesenOpSaldo) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD lesenOpSaldo Procedure
- FUNCTION lesenOpSaldo RETURNS INTEGER
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-MAKE_DATUM) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD MAKE_DATUM Procedure
- FUNCTION MAKE_DATUM RETURNS DATE
- ( ipDatum AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-setTimeStamp) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD setTimeStamp Procedure
- FUNCTION setTimeStamp RETURNS CHARACTER
- ( ipDatum AS DATE ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-startSQLTransaction) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD startSQLTransaction Procedure
- FUNCTION startSQLTransaction RETURNS LOGICAL
- ( /* parameter-definitions */ ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateBeleg) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD updateBeleg Procedure
- FUNCTION updateBeleg RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateBelegDetail) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD updateBelegDetail Procedure
- FUNCTION updateBelegDetail RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateMwstMap) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD updateMwstMap Procedure
- FUNCTION updateMwstMap RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateZabMap) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD updateZabMap Procedure
- FUNCTION updateZabMap RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-writeLogFile) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD writeLogFile Procedure
- FUNCTION writeLogFile RETURNS LOGICAL
- ( ipMessage AS CHARACTER ) FORWARD.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- /* *********************** Procedure Settings ************************ */
- &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
- /* Settings for THIS-PROCEDURE
- Type: Procedure
- Allow:
- Frames: 0
- Add Fields to: Neither
- Other Settings: CODE-ONLY COMPILE APPSERVER
- */
- &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
- /* ************************* Create Window ************************** */
- &ANALYZE-SUSPEND _CREATE-WINDOW
- /* DESIGN Window definition (used by the UIB)
- CREATE WINDOW Procedure ASSIGN
- HEIGHT = 27.48
- WIDTH = 132.8.
- /* END WINDOW DEFINITION */
- */
- &ANALYZE-RESUME
-
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
- /* *************************** Main Block *************************** */
- cTempName = DYNAMIC-FUNCTION('getLogName':U) NO-ERROR.
- cJournal = REPLACE(cTempName, '.log', '.csv').
-
- GET-KEY-VALUE SECTION 'Grundeinstellungen'
- KEY 'SESAM_SQL_LOG'
- VALUE cTempDir.
- IF cTempDir = ? THEN cTempDir = SESSION:TEMP-DIRECTORY.
- IF cTempDir = '' THEN cTempDir = SESSION:TEMP-DIRECTORY.
-
- cMessage = 'Start Datentransfer Ge_MIS <-> SAGE '.
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- IF TIME > 21600 THEN
- DO: /* Test auf zweimalige Ausführung nur nach 06:00 Uhr */
- FIND Steuer NO-LOCK
- WHERE Steuer.Firma = '1000'.
- IF Steuer.Fwi30 = 1 THEN
- DO:
- cMessage = 'Es ist bereits ein Task am Arbeiten '.
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- QUIT.
- END.
- END.
-
- ja = DYNAMIC-FUNCTION('CreateConnection':U) NO-ERROR.
- IF NOT ja THEN QUIT.
-
- REPEAT TRANSACTION:
- FIND Steuer
- WHERE Steuer.Firma = '1000'.
- Steuer.Fwi30 = 1.
- RELEASE Steuer.
- LEAVE.
- END.
-
- /*
- RUN FUELLEN_MWST.
- RUN FUELLEN_ZAKOND.
- */
- RUN FUELLEN_OP.
- RUN LESEN_OFFENESALDI.
- /*
- RUN REORG_DB.
- */
- DYNAMIC-FUNCTION('CloseConnection':U) NO-ERROR.
- cMessage = 'Ende Datentransfer Ge_MIS <-> SAGE ' + CHR(10).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- REPEAT TRANSACTION:
- FIND Steuer
- WHERE Steuer.Firma = '1000'.
- Steuer.Fwi30 = 0.
- RELEASE Steuer.
- LEAVE.
- END.
- QUIT.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- /* ********************** Internal Procedures *********************** */
- &IF DEFINED(EXCLUDE-FUELLEN_MWST) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_MWST Procedure
- PROCEDURE FUELLEN_MWST :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE hTMwst AS HANDLE NO-UNDO.
- DEFINE VARIABLE xx AS INTEGER NO-UNDO.
- EMPTY TEMP-TABLE TMwst.
- hTMwst = BUFFER TMwst:HANDLE.
- FOR EACH MWSTAns NO-LOCK
- WHERE MWSTAns.Datum <= TODAY
- BREAK BY MWSTAns.MWST_Cd
- BY MWSTAns.Datum:
- IF NOT LAST-OF ( MWSTAns.MWST_Cd ) THEN NEXT.
- FIND FIRST Wust USE-INDEX Wust-k2
- WHERE Wust.WuCd = MWSTAns.MWST_Cd NO-LOCK NO-ERROR.
- CREATE TMwst.
- ASSIGN
- TMwst.MwstTyp = STRING(MWSTAns.MWST_Cd,'99')
- TMwst.MwstId = ''.
- END.
- DYNAMIC-FUNCTION('startSQLTransaction':U) NO-ERROR.
- xx = 0.
- FOR EACH TMwst:
- ja = DYNAMIC-FUNCTION('ifMwst':U, INPUT TMwst.MwstId) NO-ERROR.
- IF ja = ? THEN NEXT.
- IF ja = TRUE THEN NEXT.
- /*
- DYNAMIC-FUNCTION('updateMwstMap':U, INPUT hTMwst, INPUT 1) NO-ERROR.
- */
- END.
- DYNAMIC-FUNCTION('closeSQLTransaction':U) NO-ERROR.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-FUELLEN_OP) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_OP Procedure
- PROCEDURE FUELLEN_OP :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE htDebop AS HANDLE NO-UNDO.
- DEFINE VARIABLE htDetail AS HANDLE NO-UNDO.
- DEFINE VARIABLE xx AS INTEGER NO-UNDO.
- DEFINE VARIABLE cOrt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE dFakBetr AS DECIMAL DECIMALS 2 NO-UNDO.
- DEFINE VARIABLE BuchBetr AS DECIMAL DECIMALS 2 NO-UNDO.
- DEFINE VARIABLE Ansatz AS DECIMAL NO-UNDO.
- DEFINE VARIABLE Inkl AS LOG NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iDocKey AS INTEGER NO-UNDO.
- DEFINE VARIABLE cAdresse AS CHARACTER NO-UNDO.
- DEFINE VARIABLE dMwst AS DECIMAL NO-UNDO.
- DEFINE VARIABLE lErst AS LOG NO-UNDO.
- DEFINE VARIABLE lMwstAdd AS LOG NO-UNDO.
- DEFINE VARIABLE nDiff AS DECIMAL DECIMALS 2 NO-UNDO.
- DEFINE VARIABLE cExport AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iMwstCd AS INTEGER NO-UNDO.
- EMPTY TEMP-TABLE tDebop .
- EMPTY TEMP-TABLE tDetail .
- EMPTY TEMP-TABLE xDetail .
- EMPTY TEMP-TABLE xOpSaldo.
- htDebop = BUFFER tDebop :HANDLE.
- htDetail = BUFFER xDetail:HANDLE.
-
- CREATE xDetail.
- FIND Steuer WHERE Steuer.Firma = '1000' NO-LOCK.
- cMessage = ' Einlesen Daten aus SESAM gestartet'.
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- xx = DYNAMIC-FUNCTION('lesenOpSaldo':U) NO-ERROR.
-
- cMessage = SUBSTITUTE(' Anzahl eingelesene verarbeitete Rechnungen aus SESAM -> &1 ', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- xx = DYNAMIC-FUNCTION('lesenBeleg':U) NO-ERROR.
- cMessage = SUBSTITUTE(' Anzahl eingelesene Belege aus SESAM -> &1 ', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- xx = DYNAMIC-FUNCTION('lesenBelegDetail':U) NO-ERROR.
-
- cMessage = SUBSTITUTE(' Anzahl eingelesene Beleg-Details aus SESAM -> &1 ', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- cMessage = ' Einlesen Daten aus SESAM beendet'.
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- cMessage = ' '.
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- cExport = SUBSTITUTE('&1Beleg.csv', cTempDir).
- OUTPUT TO VALUE(cExport) NO-MAP NO-CONVERT.
- FOR EACH tBeleg:
- EXPORT DELIMITER ';' tBeleg.
- END.
- OUTPUT CLOSE.
- cExport = SUBSTITUTE('&1BelegDetail.csv', cTempDir).
- OUTPUT TO VALUE(cExport) NO-MAP NO-CONVERT.
- FOR EACH tBelegDetail:
- EXPORT DELIMITER ';' tBelegDetail.
- END.
- OUTPUT CLOSE.
- xx = 0.
- FOR EACH Debop NO-LOCK
- WHERE Debop.Firma = '1000'
- AND Debop.Faknr >= 30000
- AND ((Debop.Fakbetr <> 0 AND
- Debop.Saldo <> 0.0)
- OR (Debop.Fakbetr = 0)) ,
- FIRST Adresse NO-LOCK
- WHERE Adresse.Firma = Debop.Firma
- AND Adresse.Knr = Debop.Knr :
- FIND FIRST tBeleg NO-LOCK
- WHERE tBeleg.OpId = TRIM(STRING(Debop.Faknr,'>>>>>>>')) NO-ERROR.
- IF AVAILABLE tBeleg THEN NEXT.
- IF Debop.Fakbetr = 0 THEN
- DO:
- dMwst = 0.
- DO ii = 1 TO 10:
- dMwst = dMwst + Debop.FakWpfl[ii].
- END.
- IF dMwst = 0 THEN NEXT.
- END.
-
- FIND Orte OF Adresse NO-LOCK NO-ERROR.
- IF Adresse.Ort <> '' THEN cOrt = Adresse.Ort.
- ELSE IF AVAILABLE Orte THEN cOrt = Orte.Ort.
- ELSE cOrt = '??????????'.
- FIND Sprache OF Adresse NO-LOCK NO-ERROR.
- IF Adresse.Firma1 <> '' THEN cAdresse = TRIM(Adresse.Firma1).
- ELSE cAdresse = TRIM(Adresse.Name + ' ' + Adresse.Vorname).
- cAdresse = TRIM(SUBSTRING(cAdresse,01,30)).
- CREATE tDebop.
- ASSIGN
- tDebop.DocTyp = 0
- tDebop.OpId = TRIM(STRING(Debop.Faknr,'>>>>>>>>'))
- tDebop.KndNr = Debop.Knr
- tDebop.SammelKonto = Debop.Konto
- tDebop.OpDate = Debop.Fakdat
- tDebop.ZabTyp = STRING(Debop.Kond,'99')
- tDebop.Firma = cAdresse
- tDebop.SortId = TRIM(SUBSTRING(Adresse.Suchbe ,01,10))
- tDebop.Zusatz1 = TRIM(SUBSTRING(Adresse.Zusatz1,01,30))
- tDebop.Strasse = TRIM(SUBSTRING(Adresse.Strasse,01,30))
- tDebop.Plz = TRIM(SUBSTRING(Adresse.Plz ,01,06))
- tDebop.Ort = TRIM(SUBSTRING(cOrt ,01,24))
- tDebop.Telefon1 = TRIM(SUBSTRING(Adresse.Tel-1 ,01,20))
- tDebop.Telefon4 = TRIM(SUBSTRING(Adresse.Tel-3 ,01,20))
- tDebop.EsrNr = ''
- tDebop.Sprache = (IF AVAILABLE Sprache THEN SUBSTRING(Sprache.Bez,01,01) ELSE 'D')
- tDebop.iStatus = 9.
- .
- IF tDebop.Firma = ''
- THEN tDebop.Firma = TRIM(SUBSTRING((Adresse.NAME + ' ' + Adresse.Vorname),01,30)).
- dFakBetr = Debop.FakBetr.
- EMPTY TEMP-TABLE tMwstBetr.
- FOR EACH Interf NO-LOCK
- WHERE Interf.Firma = Steuer.Fwc09
- AND Interf.TrNr1 = Debop.TrNr1
- AND Interf.TrNr2 = Debop.TrNr2
- AND Interf.Herk >= 50
- AND Interf.Herk <= 59
- AND Interf.MWSt_Art = 0
- BREAK BY Interf.Firma
- BY Interf.TrNr1
- BY Interf.TrNr2
- BY Interf.Trnr :
-
- FIND FIRST tMwstBetr
- WHERE tMwstbetr.SammelKonto = Interf.Kto2
- AND tMwstbetr.MwstCd = Interf.Mwst_Cd NO-ERROR.
- IF NOT AVAILABLE tMwstBetr THEN
- DO:
- CREATE tMwstBetr.
- ASSIGN
- tMwstBetr.SammelKonto = Interf.Kto2
- tMwstBetr.MwstCd = Interf.Mwst_Cd
- tMwstBetr.MwstAns = Debop.Fakwpro[Interf.Mwst_Cd].
- END.
- ASSIGN
- tMwstBetr.MwstPfl = tMwstBetr.MwstPfl + Interf.Betrag.
- IF NOT LAST-OF ( Interf.TrNr2 ) THEN NEXT.
-
- BuchBetr = 0.
- lMwstAdd = FALSE.
- FOR EACH tMwstBetr
- BREAK BY tMwstBetr.MwstCd:
- IF FIRST-OF ( tMwstBetr.MwstCd ) THEN BuchBetr = 0.
- BuchBetr = BuchBetr + tMwstBetr.MwstPfl.
- IF NOT LAST-OF ( tMwstBetr.MwstCd ) THEN NEXT.
-
- ii = tMwstBetr.MwstCd.
- IF ABS(Debop.FakWpfl[ii] - BuchBetr) < ABS(Debop.FakWpfl[ii] * 0.01) THEN
- DO.
- lMwstAdd = TRUE.
- LEAVE.
- END.
- END.
- /* lMwstAdd = TRUE --> Beim Betrag muss die Mwst dazugerechnet werden */
- /* In der Schnittstelle werden nur Inklusiv-Beträge übermittelt */
- IF lMwstAdd THEN
- DO:
- FOR EACH tMwstBetr :
- tMwstBetr.MwstPfl = tMwstBetr.MwstPfl * (100 + tMwstBetr.MwstAns) / 100.
- END.
- END.
-
- /* Different zwischen Fakbetr und einzelnen Buchungen errechnen */
- /* Differenz auf dem Konto mit dem grössten Betrag ausgleichen */
- Buchbetr = 0.
- FOR EACH tMwstBetr:
- tMwstBetr.MwstPfl = DECIMAL(STRING(tMwstBetr.MwstPfl,'999999999.99-')).
- BuchBetr = BuchBetr + tMwstBetr.MwstPfl.
- END.
- Buchbetr = DECIMAL(STRING(Buchbetr,'999999999.99-')).
- nDiff = dFakBetr - Buchbetr.
- FOR FIRST tMwstBetr
- BY tMwstBetr.MwstPfl DESCENDING:
- tMwstBetr.MwstPfl = tMwstBetr.MwstPfl + nDiff.
- END.
- ii = 0.
- FOR EACH tMwstBetr
- BY tMwstBetr.SammelKonto
- BY tMwstBetr.MwstCd:
- iMwstCd = (IF tMwstBetr.MwstCd < 5 OR
- tMwstBetr.MwstCd > 6 THEN tMwstBetr.MwstCd ELSE 13).
- ii = ii + 1.
- CREATE tDetail.
- ASSIGN
- tDetail.DocKey = Debop.Faknr
- tDetail.DocLine = ii
- tDetail.SammelKonto = tMwstBetr.SammelKonto
- tDetail.cText = ''
- tDetail.MwstTyp = STRING(iMWStCd,'99')
- tDetail.Betrag = tMwstBetr.MwstPfl
- tDetail.BetragMwst = 0
- tDetail.BetragFW = 0
- tDetail.BuchTyp = ''
- tDetail.Kostenstelle = ''
- tDetail.cCode = ''
- tDetail.iStatus = 9.
- END.
- END.
- xx = xx + 1.
- END.
- cMessage = SUBSTITUTE(' Anzahl beruecksichtigte Rechnungen aus Ge_MIS -> &1', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- xx = 0.
- DYNAMIC-FUNCTION('startSQLTransaction':U) NO-ERROR.
- FOR EACH tDebop:
- FIND FIRST tBeleg WHERE tBeleg.OpId = tDebop.OpID NO-ERROR.
- IF AVAILABLE tBeleg THEN NEXT.
-
- ja = DYNAMIC-FUNCTION('updateBeleg':U, INPUT htDebop, INPUT 1) NO-ERROR.
- tDebop.iStatus = (IF ja THEN 1 ELSE 0).
- xx = xx + 1.
- IF xx MOD 100 = 0 THEN
- DO:
- DYNAMIC-FUNCTION('closeSQLTransaction':U) NO-ERROR.
- cMessage = SUBSTITUTE(' -> bereits eingefuegte Belege -> &1', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- ii = ETIME(TRUE).
- DO WHILE ETIME < 1000:
- END.
- DYNAMIC-FUNCTION('startSQLTransaction':U) NO-ERROR.
- END.
- FIND Debop NO-LOCK
- WHERE Debop.Firma = '1000'
- AND Debop.Knr = tDebop.KndNr
- AND Debop.Faknr = INTEGER(tDebop.OpId) NO-ERROR.
- CREATE tOpSaldo.
- ASSIGN
- tOpSaldo.OpId = TRIM(STRING(Debop.Faknr,'>>>>>>>>'))
- tOpSaldo.PkNr = Debop.Knr
- tOpSaldo.Betrag = Debop.Saldo
- tOpSaldo.BetragFW = Debop.Saldo NO-ERROR.
- END.
- DYNAMIC-FUNCTION('closeSQLTransaction':U) NO-ERROR.
-
- cMessage = SUBSTITUTE(' Anzahl eingefügte Belege -> &1', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- ii = ETIME(TRUE).
- DO WHILE ETIME < 1000:
- END.
- xx = DYNAMIC-FUNCTION('lesenBeleg':U) NO-ERROR.
- cMessage = SUBSTITUTE(' Anzahl eingelesene Belege aus SESAM nach Belegverbuchen -> &1', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- xx = 0.
- DYNAMIC-FUNCTION('startSQLTransaction':U) NO-ERROR.
- FOR EACH tDetail:
- FIND FIRST tBeleg WHERE tBeleg.OpId = TRIM(STRING(tDetail.DocKey,'>>>>>>>>')) NO-ERROR.
- IF NOT AVAILABLE tBeleg THEN NEXT.
- iDocKey = tBeleg.DocKey.
- FIND FIRST tBelegDetail
- WHERE tBelegDetail.DocKey = iDocKey
- AND tBelegDetail.DocLine = tDetail.DocLine NO-ERROR.
- IF AVAILABLE tBelegDetail THEN NEXT.
- FIND FIRST xDetail.
- BUFFER-COPY tDetail EXCEPT DocKey SammelKonto TO xDetail
- ASSIGN
- xDetail.DocKey = iDocKey
- xDetail.Konto = tDetail.SammelKonto.
- /*
- tDetail.DocKey = cDocKey.
- IF tDetail.DocKey = ? THEN NEXT.
- IF tDetail.DocKey = 0 THEN NEXT.
- ja = DYNAMIC-FUNCTION('ifBelegDetail':U,
- INPUT tDetail.DocKey,
- INPUT tDetail.DocLine) NO-ERROR.
- IF ja = ? THEN NEXT.
- IF ja = TRUE THEN NEXT.
- */
- DYNAMIC-FUNCTION('updateBelegDetail':U, INPUT htDetail, INPUT 1) NO-ERROR.
- tDetail.iStatus = (IF ja THEN 1 ELSE 0).
- xx = xx + 1.
- IF xx MOD 100 = 0 THEN
- DO:
- DYNAMIC-FUNCTION('closeSQLTransaction':U) NO-ERROR.
- cMessage = SUBSTITUTE(' -> bereits eingefuegte BelegDetail -> &1', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- ii = ETIME(TRUE).
- DO WHILE ETIME < 500:
- END.
- DYNAMIC-FUNCTION('startSQLTransaction':U) NO-ERROR.
- END.
- END.
- DYNAMIC-FUNCTION('closeSQLTransaction':U) NO-ERROR.
- cMessage = SUBSTITUTE(' Anzahl eingefuegte BelegDetail -> &1', xx).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- /*
- RUN loeschenDoppelteEintraege.
- */
- OUTPUT TO VALUE(cJournal) NO-MAP NO-CONVERT.
- FOR EACH tDebop:
- PUT CONTROL tDebop.OpId
- ';'
- tDebop.KndNr
- ';'
- tDebop.Firma
- ';'
- tDebop.Zusatz
- ';'
- tDebop.Ort
- ';'
- tDebop.iStatus
- ';'
- tDebop.SammelKonto
- ';'.
- lErst = TRUE.
- FIND FIRST tBeleg WHERE tBeleg.OpId = tDebop.OpId.
- FOR EACH tDetail WHERE tDetail.DocKey = INTEGER(tDebop.OpID):
- IF NOT lErst THEN PUT CONTROL ';;;;;;;'.
- PUT CONTROL tDetail.SammelKonto
- ';'
- tDetail.cText
- ';'
- tDetail.MwstTyp
- ';'
- TRIM(STRING(tDetail.BetragMwst,'->>>>>>>>9.99'))
- ';'
- TRIM(STRING(tDetail.Betrag ,'->>>>>>>>9.99'))
- ';'
- tDetail.BuchTyp
- ';'
- tDetail.iStatus
- CHR(10).
- lErst = FALSE.
- END.
- END.
- OUTPUT CLOSE.
-
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-FUELLEN_ZAKOND) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FUELLEN_ZAKOND Procedure
- PROCEDURE FUELLEN_ZAKOND :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE hTZaKo AS HANDLE NO-UNDO.
- DEFINE VARIABLE xx AS INTEGER NO-UNDO.
- EMPTY TEMP-TABLE TZaKo.
- hTZaKo = BUFFER TZaKo:HANDLE.
- FOR EACH Kondi NO-LOCK:
- CREATE TZaKo.
- ASSIGN
- TZaKo.ZabTyp = STRING(Kondi.Kond,'99')
- TZaKo.ZabTyp2 = ''.
- END.
- DYNAMIC-FUNCTION('startSQLTransaction':U) NO-ERROR.
- xx = 0.
- FOR EACH TZaKo:
- ja = DYNAMIC-FUNCTION('ifZaKo':U, INPUT TZaKo.ZabTyp) NO-ERROR.
- IF ja = ? THEN NEXT.
- IF ja = TRUE THEN NEXT.
- DYNAMIC-FUNCTION('updateZabMap':U, INPUT hTZaKo, INPUT 1) NO-ERROR.
- END.
- DYNAMIC-FUNCTION('closeSQLTransaction':U) NO-ERROR.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-LESEN_OFFENESALDI) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LESEN_OFFENESALDI Procedure
- PROCEDURE LESEN_OFFENESALDI :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE Saldo AS DECIMAL NO-UNDO.
- DEFINE VARIABLE Diff AS DECIMAL NO-UNDO.
- DEFINE VARIABLE cExport AS CHARACTER NO-UNDO.
-
- DEFINE BUFFER BDebst FOR Debst.
- /*
- DYNAMIC-FUNCTION('lesenOpSaldo':U) NO-ERROR.
- */
- cExport = SUBSTITUTE('&1tOpSaldo.csv', cTempDir).
- OUTPUT TO VALUE(cExport) NO-MAP NO-CONVERT.
- FOR EACH tOpSaldo:
- EXPORT DELIMITER ';' tOpSaldo.
- END.
- OUTPUT CLOSE.
- FIND FIRST tOpSaldo NO-LOCK NO-ERROR.
- IF NOT AVAILABLE tOpSaldo THEN RETURN.
- FOR EACH Debst NO-LOCK:
- Saldo = 0.
- FOR EACH Debop USE-INDEX Debop-k1
- WHERE Debop.Firma = Debst.Firma
- AND Debop.Knr = Debst.Knr:
- FIND FIRST tDebop NO-LOCK
- WHERE tDebop.OpId = TRIM(STRING(Debop.Faknr,'>>>>>>>>')) NO-ERROR.
- IF AVAILABLE tDebop AND
- tDebop.iStatus < 9 THEN NEXT.
- FIND FIRST tOpSaldo NO-LOCK USE-INDEX Faknr
- WHERE tOpSaldo.OpId = TRIM(STRING(Debop.Faknr,'>>>>>>>>'))
- AND tOpSaldo.PkNr = Debst.Knr NO-ERROR.
- IF AVAILABLE tOpSaldo THEN Diff = Debop.Saldo - tOpSaldo.Betrag.
- ELSE Diff = (IF Debop.Fakdat < (TODAY - 3) THEN Debop.Saldo ELSE 0).
- IF Diff <> 0 THEN
- DO:
- Debop.ZahBetr = Debop.ZahBetr + Diff.
- Debop.Saldo = Debop.Fakbetr - Debop.Zahbetr - Debop.Skonto.
- Debop.Zahdat = TODAY.
- END.
- Saldo = Saldo + Debop.Saldo.
- IF Debop.Saldo <> 0 THEN NEXT.
- IF Debop.FakDat > (TODAY - 360) THEN NEXT.
- /*
- DELETE Debop.
- */
- END.
- IF Saldo = Debst.Saldo THEN NEXT.
- FIND BDebst WHERE RECID(BDebst) = RECID(Debst)
- EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
- IF NOT AVAILABLE BDebst THEN NEXT.
- BDebst.Saldo = Saldo.
- RELEASE BDebst.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-loeschenDoppelteEintraege) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE loeschenDoppelteEintraege Procedure
- PROCEDURE loeschenDoppelteEintraege :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- OUTPUT TO "C:\Temp\Loeschen.log" APPEND NO-MAP NO-CONVERT.
- DEFINE VARIABLE AnzRec AS INTEGER NO-UNDO.
- DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
-
- DYNAMIC-FUNCTION('lesenBeleg':U).
- DO WHILE TRUE:
- FOR EACH TBeleg NO-LOCK
- BREAK BY TBeleg.OpID
- BY TBeleg.DocKey:
- IF FIRST-OF ( TBeleg.OpID ) THEN NEXT.
-
- DYNAMIC-FUNCTION('startSQLTransaction':U) NO-ERROR.
-
- ODBC-QUERY = "DELETE FROM [g.connect].[dbo].[BelegDetail] "
- + "WHERE DocKey = '" + STRING(TBeleg.DocKey) + "' ".
- PUT CONTROL ODBC-QUERY ' --> '.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount
- NO-ERROR.
- PUT CONTROL ODBC-NULL ' / ' ODBC-RECCOUNT CHR(10).
- ODBC-QUERY = "DELETE FROM [g.connect].[dbo].[Beleg] "
- + "WHERE OpId = '" + TBeleg.OpId + "' ".
- PUT CONTROL ODBC-QUERY ' --> '.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount
- NO-ERROR.
- PUT CONTROL ODBC-NULL ' / ' ODBC-RECCOUNT CHR(10) CHR(10).
-
- DYNAMIC-FUNCTION('closeSQLTransaction':U) NO-ERROR.
- END.
- LEAVE.
- END.
-
- OUTPUT CLOSE.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-REORG_DB) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REORG_DB Procedure
- PROCEDURE REORG_DB :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE AnzRec AS INTEGER NO-UNDO.
- DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO.
- AnzRec = DYNAMIC-FUNCTION('lesenBeleg':U) NO-ERROR.
-
- cMessage = SUBSTITUTE('REORG OP&1Anzahl gelesene Records = &2', CHR(10), AnzRec).
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- /*
- DO WHILE TRUE:
- IF AnzRec = ? THEN LEAVE.
- IF AnzRec = 0 THEN LEAVE.
- FOR EACH TBeleg NO-LOCK:
- FIND Debop NO-LOCK USE-INDEX Debop-k1
- WHERE Debop.Firma = '1000'
- AND Debop.Knr = TBeleg.KndNr
- AND Debop.Faknr = INTEGER(TBeleg.OpId) NO-ERROR.
- IF AVAILABLE Debop THEN NEXT.
- ODBC-QUERY = "DELETE FROM [g.connect].[dbo].[BelegDetail] "
- + "WHERE DocKey = '" + STRING(TBeleg.DocKey) + "' ".
- PUT CONTROL ODBC-QUERY ' --> '.
- ASSIGN ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- NO-ERROR.
- PUT CONTROL ODBC-NULL CHR(10) CHR(13).
- ODBC-QUERY = "DELETE FROM [g.connect].[dbo].[Beleg] "
- + "WHERE OpId = '" + TBeleg.OpId + "' ".
- PUT CONTROL ODBC-QUERY ' --> '.
- ASSIGN ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- NO-ERROR.
- PUT CONTROL ODBC-NULL CHR(10) CHR(13).
- END.
- LEAVE.
- END.
- AnzRec = DYNAMIC-FUNCTION('lesenBelegDetail':U) NO-ERROR.
- PUT CONTROL 'REORG DETAIL' CHR(10) CHR(13)
- 'Anzahl gelesene Records = ' STRING(AnzRec) CHR(10) CHR(13).
- DO WHILE TRUE:
- IF AnzRec = ? THEN LEAVE.
- IF AnzRec = 0 THEN LEAVE.
- FOR EACH TBelegDetail NO-LOCK:
- ODBC-QUERY = "SELECT [OpId] FROM [g.connect].[dbo].[Beleg] "
- + "WHERE DocKey = '" + STRING(TBelegDetail.DocKey) + "' ".
- ASSIGN ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR.
- IF ODBC-RECCOUNT <> ? AND
- ODBC-RECCOUNT <> 0 THEN NEXT.
- AnzRec = AnzRec + 1.
- ODBC-QUERY = "DELETE FROM [g.connect].[dbo].[BelegDetail] "
- + "WHERE DocKey = '" + STRING(TBelegDetail.DocKey) + "' "
- + "AND DocLine = '" + STRING(TBelegDetail.DocLine) + "' " .
- PUT CONTROL ODBC-QUERY ' --> '.
- ASSIGN ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- NO-ERROR.
- PUT CONTROL ODBC-NULL CHR(10) CHR(13).
- END.
- LEAVE.
- END.
- */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-RUNDEN) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE RUNDEN Procedure
- PROCEDURE RUNDEN :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE INPUT PARAMETER Rundcode AS INTEGER NO-UNDO.
- DEFINE INPUT-OUTPUT PARAMETER Rundbetr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VBetr AS DECIMAL DECIMALS 4 NO-UNDO.
- DEFINE VARIABLE VOp AS DECIMAL INIT 0.2 NO-UNDO.
- DEFINE VARIABLE XPChar AS CHARACTER NO-UNDO.
- DO TRANSACTION:
- VBetr = Rundbetr.
- IF Rundcode = 1 THEN
- DO:
- VBetr = ROUND((VBetr / 100 * VOp), 4) / VOp * 100.
- END.
- IF Rundcode = 2 THEN
- DO:
- VBetr = ROUND((VBetr / 100), 3) * 100.
- END.
- IF Rundcode = 3 THEN
- DO:
- VBetr = VBetr + 0.0499.
- VBetr = ROUND((VBetr / 100), 3) * 100.
- END.
- IF Rundcode = 4 THEN
- DO:
- VBetr = VBetr - 0.0500.
- VBetr = ROUND((VBetr / 100), 3) * 100.
- END.
- IF Rundcode = 5 THEN
- DO:
- VBetr = ROUND((VBetr / 100), 2) * 100.
- END.
- IF Rundcode = 6 THEN
- DO:
- VBetr = VBetr + 0.4999.
- VBetr = ROUND((VBetr / 100), 2) * 100.
- END.
- IF Rundcode = 7 THEN
- DO:
- VBetr = VBetr - 0.5000.
- VBetr = ROUND((VBetr / 100), 2) * 100.
- END.
- IF Rundcode = 8 THEN
- DO:
- VBetr = ROUND((VBetr / 1000), 2) * 1000.
- END.
- IF Rundcode = 9 THEN
- DO:
- VBetr = VBetr + 4.9999.
- VBetr = ROUND((VBetr / 1000), 2) * 1000.
- END.
- IF Rundcode = 10 THEN
- DO:
- VBetr = VBetr - 5.0000.
- VBetr = ROUND((VBetr / 1000), 2) * 1000.
- END.
- IF Rundcode = 99 THEN
- DO:
- XPChar = STRING(VBetr,"-99999999.999").
- VBetr = DECIMAL(SUBSTRING(XPChar,01,12)).
- IF SUBSTRING(XPChar,13,01) > "4" THEN VBetr = VBetr + 0.01.
- END.
- Rundbetr = VBetr.
- END.
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-SEND_WEBREQUEST) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEND_WEBREQUEST Procedure
- PROCEDURE SEND_WEBREQUEST :
- /*------------------------------------------------------------------------------
- Purpose:
- Parameters: <none>
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE hWebserver AS HANDLE NO-UNDO.
- DEFINE VARIABLE cConn AS CHARACTER NO-UNDO.
- DEFINE VARIABLE fio AS LOG NO-UNDO.
- DEFINE VARIABLE cWebHost AS CHARACTER NO-UNDO
- INIT '192.168.99.10'.
- DEFINE VARIABLE cWebPort AS CHARACTER NO-UNDO
- INIT '8080'.
- DEFINE VARIABLE cWebHead AS CHARACTER NO-UNDO
- INIT 'webspeed/cgi'.
- DEFINE VARIABLE cWebPath AS CHARACTER NO-UNDO
- INIT 'cgiip.exe/WService=wsEShop/'.
- DEFINE VARIABLE vparam AS CHARACTER NO-UNDO.
- DEFINE VARIABLE vURL AS CHARACTER NO-UNDO.
- DEFINE VARIABLE Aufnr AS INTEGER NO-UNDO.
- DEFINE VARIABLE vBuff AS MEMPTR NO-UNDO.
- DEFINE VARIABLE cc AS INTEGER NO-UNDO.
- DEFINE VARIABLE dd AS INTEGER NO-UNDO.
- DEFINE VARIABLE cURL AS CHARACTER NO-UNDO.
- DEFINE VARIABLE iTime AS INTEGER NO-UNDO.
- DEFINE VARIABLE xTime AS INTEGER NO-UNDO.
-
- CrLf = CHR(10)+ CHR(13).
- CREATE SOCKET hWebserver.
- hWebserver:SET-READ-RESPONSE-PROCEDURE('lesenWebantwort').
- cConn = '-H ' + cWebHost + ' -S ' + cWebPort.
- fio = hWebserver:CONNECT(cConn) NO-ERROR.
- IF NOT fio OR
- hWebserver:CONNECTED() = FALSE THEN
- DO:
- MESSAGE 'Kein Verbindung zu Webserver' VIEW-AS ALERT-BOX.
- hWebserver:DISCONNECT() NO-ERROR.
- DELETE OBJECT hWebserver NO-ERROR.
- RETURN.
- END.
-
- cWebHead = cWebHost + ':' + cWebPort + '/' + cWebHead.
- vParam = 'ipFrom=SESAM&ipTo=walter.riechsteiner@adprime.ch&ipCC=&ipBC=&ipSubject=SESAM-Meldung&ipBody=Anhang mit SESAM-Logfile&ipAttach='.
- vURL = 'http://' + cWebHead + '/' + cWebPath
- + '/send_mail.p'.
- WebString = ''.
- vURL = 'POST '
- + vURL
- + ' HTTP/1.0'
- + CrLf
- + 'Content-Type: application/x-www-form-urlencoded'
- + CrLf
- + 'Content-Length:'
- + STRING(LENGTH(vParam))
- + CrLf
- + CrLf
- + vParam
- + CrLf.
- SET-SIZE(vBuff) = 0.
- SET-SIZE(vBuff) = LENGTH(vURL) + 1.
- SET-BYTE-ORDER(vBuff) = BIG-ENDIAN.
- PUT-STRING(vBuff,1) = vURL.
- cURl = REPLACE(vURL, CHR(10), '->').
- cURl = REPLACE(cURL, CHR(13), '').
- iTime = ETIME(FALSE).
- DO WHILE (ETIME - iTime) < 30000:
- hWebserver:WRITE(vBuff, 1, LENGTH(vURL)) NO-ERROR.
- IF ERROR-STATUS:ERROR THEN NEXT.
- DO WHILE hWebserver:BYTES-WRITTEN < LENGTH(vURL):
- xTime = ETIME(FALSE).
- DO WHILE (ETIME - xTime) < 1000:
- END.
- END.
- DO WHILE hWebserver:GET-BYTES-AVAILABLE() > 0:
- xTime = ETIME(FALSE).
- DO WHILE (ETIME(FALSE) - xTime) < 1000:
- END.
- END.
- LEAVE.
- END.
- SET-SIZE(vBuff) = 0.
- MESSAGE 'io' VIEW-AS ALERT-BOX.
- hWebserver:DISCONNECT() NO-ERROR.
- DELETE OBJECT hWebserver NO-ERROR.
- /*
- http://192.168.99.10:8080/webspeed/cgi/cgiip.exe/WService=wsEShop/
- */
- END PROCEDURE.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- /* ************************ Function Implementations ***************** */
- &IF DEFINED(EXCLUDE-cancelSQLTransaction) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION cancelSQLTransaction Procedure
- FUNCTION cancelSQLTransaction RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- ODBC-QUERY = 'ROLLBACK'.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 ).
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CloseConnection) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CloseConnection Procedure
- FUNCTION CloseConnection RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- ObjConnection:Close NO-ERROR.
- RELEASE OBJECT ObjConnection NO-ERROR.
- RELEASE OBJECT ObjCommand NO-ERROR.
- RELEASE OBJECT ObjRecordSet NO-ERROR.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-closeSQLTransaction) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION closeSQLTransaction Procedure
- FUNCTION closeSQLTransaction RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- ODBC-QUERY = 'COMMIT'.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 ).
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CreateConnection) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CreateConnection Procedure
- FUNCTION CreateConnection RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cConnCommand AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cDSN AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cServer AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ix AS INTEGER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE cMessage AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cBenutzer AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cPassword AS CHARACTER NO-UNDO.
- CREATE "ADODB.Connection" ObjConnection NO-ERROR.
- CREATE "ADODB.RecordSet" ObjRecordSet NO-ERROR.
- CREATE "ADODB.Command" ObjCommand NO-ERROR.
- GET-KEY-VALUE SECTION 'Grundeinstellungen'
- KEY 'SQLServer'
- VALUE cServer.
- IF cServer = ? THEN RETURN FALSE.
- IF cServer = '' THEN RETURN FALSE.
-
- GET-KEY-VALUE SECTION 'Grundeinstellungen'
- KEY 'SQLDSN'
- VALUE cDSN.
- IF cDSN = ? THEN RETURN FALSE.
- IF cDSN = '' THEN RETURN FALSE.
-
- GET-KEY-VALUE SECTION 'Grundeinstellungen'
- KEY 'SQLDSNUser'
- VALUE cBenutzer.
- IF cBenutzer = ? THEN RETURN FALSE.
- IF cBenutzer = '' THEN RETURN FALSE.
-
- GET-KEY-VALUE SECTION 'Grundeinstellungen'
- KEY 'SQLDSNPwd'
- VALUE cPassword.
- IF cPassword = ? THEN RETURN FALSE.
- IF cPassword = '' THEN RETURN FALSE.
-
- ASSIGN
- ODBC-STATUS = ''
- ODBC-NULL = ''
- ODBC-DSN = cDSN
- ODBC-SERVER = cServer
- ODBC-USERID = cBenutzer
- ODBC-PASSWD = cPassword
- ODBC-QUERY = ''.
- cConnCommand = 'data source='
- + ODBC-DSN
- + ';server='
- + ODBC-SERVER
- .
- ObjConnection:Open ( cConnCommand, ODBC-USERID, ODBC-PASSWD, 0 ) NO-ERROR.
- IF ( ERROR-STATUS:NUM-MESSAGES > 0 ) THEN
- DO:
- ii = ERROR-STATUS:NUM-MESSAGES.
- ODBC-STATUS = "Error: keine Verbindung zu Datenserver "
- + cConnCommand.
- cMessage = ODBC-STATUS.
- DO ix = 1 TO ii:
- cMessage = cMessage
- + CHR(10)
- + ERROR-STATUS:GET-MESSAGE(ix).
- END.
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
- RETURN FALSE.
- END.
- ASSIGN
- ObjCommand:ActiveConnection = ObjConnection
- ObjCommand:CommandType = 1 /* adCmdText */
- ObjConnection:CursorLocation = 3 /* adUseClient */
- ObjRecordSet:CursorType = 3 /* adOpenStatic */.
- cMessage = 'Start SESAM SQL mit Connection ' + cConnCommand.
- DYNAMIC-FUNCTION('writeLogFile':U, cMessage) NO-ERROR.
-
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-CreateSetDaten) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION CreateSetDaten Procedure
- FUNCTION CreateSetDaten RETURNS CHARACTER
- ( iphBuffer AS HANDLE, ipArt AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cSet AS CHARACTER NO-UNDO.
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cInhalt AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cFelder AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cInhalte AS CHARACTER NO-UNDO.
- DEFINE VARIABLE xFeld AS CHARACTER NO-UNDO.
- DEFINE VARIABLE xInhalt AS CHARACTER NO-UNDO.
- cSet = ''.
- cFelder = ''.
- cInhalte = ''.
- DO ii = 1 TO iphBuffer:NUM-FIELDS:
- hFeld = iphBuffer:BUFFER-FIELD(ii).
- IF hFeld:BUFFER-VALUE(0) = ? THEN NEXT.
- cFeld = hFeld:NAME.
- IF cFeld = 'cCode' THEN cFeld = 'Code'. /* ProgressSchlüsselFeld */
- IF cFeld = 'cText' THEN cFeld = 'Text'. /* ProgressSchlüsselFeld */
- IF cFeld = 'iStatus' THEN NEXT. /* Kein SQL-Feld */
- DO WHILE TRUE:
- IF hFeld:BUFFER-VALUE(0) <> ? AND
- hFeld:BUFFER-VALUE(0) <> '?' THEN LEAVE.
- CASE hFeld:DATA-TYPE:
- WHEN 'INTEGER' THEN
- hFeld:BUFFER-VALUE(0) = '0'.
- WHEN 'DECIMAL' THEN
- hFeld:BUFFER-VALUE(0) = '0.0'.
- WHEN 'DATE' THEN
- hFeld:BUFFER-VALUE(0) = ''.
- WHEN 'LOGICAL' THEN
- hFeld:BUFFER-VALUE(0) = STRING(FALSE).
- OTHERWISE
- hFeld:BUFFER-VALUE(0) = ''.
- END CASE.
- LEAVE.
- END.
- xFeld = "[" + TRIM(cFeld) + "]".
- xInhalt = TRIM(hFeld:BUFFER-VALUE(0)).
- xInhalt = REPLACE(xInhalt, "'", '"').
- xInhalt = "'" + xInhalt + "'".
- cInhalte = cInhalte + "," + xInhalt.
- cFelder = cFelder + "," + xFeld.
- END.
- cInhalte = SUBSTRING(cInhalte,02).
- cFelder = SUBSTRING(cFelder ,02).
- CASE ipArt:
- WHEN 1 THEN
- DO:
- cSet = '('
- + cFelder
- + ') VALUES ('
- + cInhalte
- + ')'.
- END.
- WHEN 0 THEN
- DO:
- cSet = 'SET '.
- DO ii = 1 TO NUM-ENTRIES(cFelder, ','):
- cSet = cSet + ENTRY(ii, cFelder, ',')
- + ' = '
- + ENTRY(ii, cInhalte, ',').
- IF ii < NUM-ENTRIES(cFelder, ',') THEN cSet = cSet + ', '.
- END.
- END.
- END CASE.
- RETURN cSet.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getDocKey) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getDocKey Procedure
- FUNCTION getDocKey RETURNS INTEGER
- ( ipDocKey AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE iDocKey AS INTEGER NO-UNDO.
- iDocKey = ipDocKey.
- ODBC-QUERY = "SELECT [DocKey] FROM [g.connect].[dbo].[Beleg] "
- + "WHERE OpId = '" + STRING(ipDocKey,'999999') + "' ".
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE ( OUTPUT ODBC-NULL, "", 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR.
- DO WHILE TRUE:
- IF ODBC-RECCOUNT = 0 THEN LEAVE.
- IF ODBC-RECCOUNT = ? THEN LEAVE.
- ObjRecordSet:MoveFirst NO-ERROR.
- iDocKey = ObjRecordSet:FIELDS("DocKey"):VALUE.
- LEAVE.
- END.
- RETURN iDocKey.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getLogName) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getLogName Procedure
- FUNCTION getLogName RETURNS CHARACTER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
-
- GET-KEY-VALUE SECTION 'GrundEinstellungen'
- KEY 'SESAM_SQL_LOG'
- VALUE cPath.
- IF cPath = '' OR
- cPath = ? THEN cPath = SESSION:TEMP-DIRECTORY.
- IF SUBSTRING(cPath, LENGTH(cPath), 01) <> '/' AND
- SUBSTRING(cPath, LENGTH(cPath), 01) <> '\' THEN cPath = cPath + '\'.
- cPath = cPath
- + 'SESAMSQL-'
- + REPLACE(STRING(TODAY,'99.99.9999'), '.', '')
- + REPLACE(STRING(TIME ,'HH:MM:SS') , ':', '') + '.Log'.
- RETURN cPath.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-getODBCDaten) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getODBCDaten Procedure
- FUNCTION getODBCDaten RETURNS LOGICAL
- ( iphBuffer AS HANDLE ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE ii AS INTEGER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- DO ii = 1 TO iphBuffer:NUM-FIELDS:
- hFeld = iphBuffer:BUFFER-FIELD(ii).
- cFeld = hFeld:NAME.
- hFeld:BUFFER-VALUE(0) = ObjRecordSet:FIELDS(cFeld):VALUE NO-ERROR.
- END.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-ifMwst) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION ifMwst Procedure
- FUNCTION ifMwst RETURNS LOGICAL
- ( ipMwstId AS CHARACTER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- ODBC-QUERY = "SELECT MwstId "
- + "FROM [g.connect].[dbo].[MwstMap] WHERE MwstId = '"
- + ipMwstId
- + "' ".
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, '', 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR.
- IF ODBC-RECCOUNT = ? THEN ODBC-RECCOUNT = 0.
- IF ODBC-RECCOUNT = 0 THEN RETURN FALSE.
- ELSE RETURN TRUE .
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-ifZaKo) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION ifZaKo Procedure
- FUNCTION ifZaKo RETURNS LOGICAL
- ( ipZabTyp AS CHARACTER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- ODBC-QUERY = "SELECT ZabTyp "
- + "FROM [g.connect].[dbo].[ZabMap] WHERE ZabTyp = '"
- + ipZabTyp
- + "' ".
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, '', 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR.
- IF ODBC-RECCOUNT = ? THEN ODBC-RECCOUNT = 0.
- IF ODBC-RECCOUNT = 0 THEN RETURN FALSE.
- ELSE RETURN TRUE .
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-lesenBeleg) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION lesenBeleg Procedure
- FUNCTION lesenBeleg RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- EMPTY TEMP-TABLE tBeleg.
- ODBC-QUERY = 'SELECT [OpId],[KndNr],[DocKey] FROM [g.connect].[dbo].[Beleg]'.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE ( OUTPUT ODBC-NULL, "", 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR.
- DO WHILE TRUE:
- IF ODBC-RECCOUNT = 0 THEN LEAVE.
- IF ODBC-RECCOUNT = ? THEN LEAVE.
- ODBC-CURSOR = 0.
- ObjRecordSet:MoveFirst NO-ERROR.
- DO WHILE ODBC-CURSOR < ODBC-RECCOUNT:
- CREATE tBeleg.
- ASSIGN
- tBeleg.Opid = ObjRecordSet:FIELDS("OpId") :VALUE
- tBeleg.KndNr = ObjRecordSet:FIELDS("KndNr") :VALUE.
- tBeleg.DocKey = ObjRecordSet:FIELDS("DocKey"):VALUE.
- ASSIGN
- ODBC-CURSOR = ODBC-CURSOR + 1.
- ObjRecordSet:MoveNext NO-ERROR.
- END.
- LEAVE.
- END.
- RETURN ODBC-RECCOUNT.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-lesenBelegDetail) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION lesenBelegDetail Procedure
- FUNCTION lesenBelegDetail RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- EMPTY TEMP-TABLE TBelegDetail.
- ODBC-QUERY = 'SELECT [DocKey],[DocLine] FROM [g.connect].[dbo].[BelegDetail]'.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE ( OUTPUT ODBC-NULL, "", 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR.
- DO WHILE TRUE:
- IF ODBC-RECCOUNT = 0 THEN LEAVE.
- IF ODBC-RECCOUNT = ? THEN LEAVE.
- ODBC-CURSOR = 0.
- ObjRecordSet:MoveFirst NO-ERROR.
- DO WHILE ODBC-CURSOR < ODBC-RECCOUNT:
- CREATE TBelegDetail.
- ASSIGN
- TBelegDetail.DocKey = ObjRecordSet:FIELDS("DocKey") :VALUE
- TBelegDetail.DocLine = ObjRecordSet:FIELDS("DocLine"):VALUE.
- ASSIGN
- ODBC-CURSOR = ODBC-CURSOR + 1.
- ObjRecordSet:MoveNext NO-ERROR.
- END.
- LEAVE.
- END.
- RETURN ODBC-RECCOUNT.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-lesenOpSaldo) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION lesenOpSaldo Procedure
- FUNCTION lesenOpSaldo RETURNS INTEGER
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- EMPTY TEMP-TABLE TOpSaldo.
- /*
- FOR EACH xOpSaldo:
- CREATE tOpSaldo.
- BUFFER-COPY xOpSaldo TO tOpSaldo.
- END.
- */
- ODBC-QUERY = "SELECT * FROM [g.connect].[dbo].[OpListe] WHERE OpId > '300000' ".
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE ( OUTPUT ODBC-NULL, "", 32 )
- ODBC-RECCOUNT = ObjRecordSet:RecordCount NO-ERROR.
- DO WHILE TRUE:
- IF ODBC-RECCOUNT = 0 THEN LEAVE.
- IF ODBC-RECCOUNT = ? THEN LEAVE.
- ODBC-CURSOR = 0.
- ObjRecordSet:MoveFirst NO-ERROR.
- DO WHILE ODBC-CURSOR < ODBC-RECCOUNT:
- CREATE TOpSaldo.
- ASSIGN
- TOpSaldo.Opid = ObjRecordSet:FIELDS("OpId") :VALUE
- TOpSaldo.PkNr = ObjRecordSet:FIELDS("PkNr") :VALUE
- TOpSaldo.Betrag = ObjRecordSet:FIELDS("Betrag") :VALUE
- TOpSaldo.BetragFW = ObjRecordSet:FIELDS("BetragFW"):VALUE.
- ASSIGN
- ODBC-CURSOR = ODBC-CURSOR + 1.
- ObjRecordSet:MoveNext NO-ERROR.
- END.
- LEAVE.
- END.
- RETURN ODBC-RECCOUNT.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-MAKE_DATUM) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION MAKE_DATUM Procedure
- FUNCTION MAKE_DATUM RETURNS DATE
- ( ipDatum AS CHARACTER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cDatum AS CHARACTER NO-UNDO.
- DEFINE VARIABLE dDatum AS DATE NO-UNDO INIT ?.
- cDatum = TRIM(SUBSTRING(ipDatum,01,10)).
- IF cDatum = '' THEN cDatum = STRING(YEAR (TODAY),'9999')
- + '-'
- + STRING(MONTH(TODAY),'99')
- + '-'
- + STRING(DAY (TODAY),'99').
- dDatum = DATE(INTEGER(SUBSTRING(cDatum,06,02)),
- INTEGER(SUBSTRING(cDatum,09,02)),
- INTEGER(SUBSTRING(cDatum,01,04))) NO-ERROR.
- IF dDatum = ? THEN dDatum = TODAY.
- RETURN dDatum.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-setTimeStamp) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION setTimeStamp Procedure
- FUNCTION setTimeStamp RETURNS CHARACTER
- ( ipDatum AS DATE ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cDate AS CHARACTER NO-UNDO.
- cDate = STRING(YEAR (TODAY),'9999')
- + '-'
- + STRING(MONTH(TODAY),'99')
- + '-'
- + STRING(DAY (TODAY),'99')
- + ' '
- + STRING(TIME,'HH:MM:SS').
- RETURN cDate.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-startSQLTransaction) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION startSQLTransaction Procedure
- FUNCTION startSQLTransaction RETURNS LOGICAL
- ( /* parameter-definitions */ ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- ODBC-QUERY = 'BEGIN TRANSACTION'.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 ).
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateBeleg) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION updateBeleg Procedure
- FUNCTION updateBeleg RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cSet AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- cSet = DYNAMIC-FUNCTION('CreateSetDaten':U, INPUT ipTHandle, INPUT ipArt) NO-ERROR.
- hFeld = ipTHandle:BUFFER-FIELD('OpId').
- cFeld = hFeld:BUFFER-VALUE(0).
- IF ipArt = 1 THEN
- DO: /* INSERT */
- ODBC-QUERY = "INSERT INTO [g.connect].[dbo].[Beleg] "
- + cSet.
- END.
- IF ipArt = 0 THEN
- DO: /* UPDATE */
- ODBC-QUERY = "UPDATE [g.connect].[dbo].[Beleg] "
- + cSet
- + " WHERE OpId = '"
- + cFeld
- + "' ".
- END.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE(OUTPUT ODBC-NULL, "", 32)
- NO-ERROR.
- IF ODBC-NULL <> '1' THEN
- DO:
- OUTPUT TO VALUE(cTempName) NO-MAP NO-CONVERT APPEND.
- PUT CONTROL 'Fehler ' ODBC-NULL ' bei ' ODBC-QUERY CHR(10).
- OUTPUT CLOSE.
- RETURN FALSE.
- END.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateBelegDetail) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION updateBelegDetail Procedure
- FUNCTION updateBelegDetail RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cSet AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE cFaknr AS CHARACTER NO-UNDO.
- DEFINE VARIABLE cIndex AS CHARACTER NO-UNDO.
- cSet = DYNAMIC-FUNCTION('CreateSetDaten':U, INPUT ipTHandle, INPUT ipArt) NO-ERROR.
- hFeld = ipTHandle:BUFFER-FIELD('DocKey').
- cFaknr = hFeld:BUFFER-VALUE(0).
- hFeld = ipTHandle:BUFFER-FIELD('DocLine').
- cIndex = hFeld:BUFFER-VALUE(0).
- IF ipArt = 1 THEN
- DO: /* INSERT */
- ODBC-QUERY = "INSERT INTO [g.connect].[dbo].[BelegDetail] "
- + cSet.
- END.
- IF ipArt = 0 THEN
- DO: /* UPDATE */
- ODBC-QUERY = "UPDATE [g.connect].[dbo].[BelegDetail] "
- + cSet
- + " WHERE DocKey = '"
- + cFaknr
- + "' "
- + "AND DocLine = '"
- + cIndex
- + "'".
- END.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- NO-ERROR.
- IF ODBC-NULL <> '1' THEN
- DO:
- OUTPUT TO VALUE(cTempName) NO-MAP NO-CONVERT APPEND.
- PUT CONTROL 'Fehler ' ODBC-NULL ' bei ' ODBC-QUERY CHR(10).
- OUTPUT CLOSE.
- RETURN FALSE.
- END.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateMwstMap) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION updateMwstMap Procedure
- FUNCTION updateMwstMap RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cSet AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- cSet = DYNAMIC-FUNCTION('CreateSetDaten':U, INPUT ipTHandle, INPUT ipArt) NO-ERROR.
- hFeld = ipTHandle:BUFFER-FIELD('MwstId').
- cFeld = hFeld:BUFFER-VALUE(0).
- IF ipArt = 1 THEN
- DO: /* INSERT */
- ODBC-QUERY = "INSERT INTO [g.connect].[dbo].[MwstMap] "
- + cSet.
- END.
- IF ipArt = 0 THEN
- DO: /* UPDATE */
- ODBC-QUERY = "UPDATE [g.connect].[dbo].[MwstMap] "
- + cSet
- + " WHERE MwstId = '"
- + cFeld
- + "'".
- END.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- NO-ERROR.
- IF ODBC-NULL <> '1' THEN
- DO:
- OUTPUT TO VALUE(cTempName) NO-MAP NO-CONVERT APPEND.
- PUT CONTROL 'Fehler ' ODBC-NULL ' bei ' ODBC-QUERY CHR(10).
- OUTPUT CLOSE.
- RETURN FALSE.
- END.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-updateZabMap) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION updateZabMap Procedure
- FUNCTION updateZabMap RETURNS LOGICAL
- ( ipTHandle AS HANDLE, ipArt AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cSet AS CHARACTER NO-UNDO.
- DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
- DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
- cSet = DYNAMIC-FUNCTION('CreateSetDaten':U, INPUT ipTHandle, INPUT ipArt) NO-ERROR.
- hFeld = ipTHandle:BUFFER-FIELD('ZabTyp').
- cFeld = hFeld:BUFFER-VALUE(0).
- IF ipArt = 1 THEN
- DO: /* INSERT */
- ODBC-QUERY = "INSERT INTO [g.connect].[dbo].[ZabMap] "
- + cSet.
- END.
- IF ipArt = 0 THEN
- DO: /* UPDATE */
- ODBC-QUERY = "UPDATE [g.connect].[dbo].[ZabMap] "
- + cSet
- + " WHERE ZabTyp = '"
- + cFeld
- + "'".
- END.
- ASSIGN
- ObjCommand:CommandText = ODBC-QUERY
- ObjRecordSet = ObjCommand:EXECUTE( OUTPUT ODBC-NULL, "", 32 )
- NO-ERROR.
- IF ODBC-NULL <> '1' THEN
- DO:
- OUTPUT TO VALUE(cTempName) NO-MAP NO-CONVERT APPEND.
- PUT CONTROL 'Fehler ' ODBC-NULL ' bei ' ODBC-QUERY CHR(10).
- OUTPUT CLOSE.
- RETURN FALSE.
- END.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
- &IF DEFINED(EXCLUDE-writeLogFile) = 0 &THEN
- &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION writeLogFile Procedure
- FUNCTION writeLogFile RETURNS LOGICAL
- ( ipMessage AS CHARACTER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- Notes:
- ------------------------------------------------------------------------------*/
- DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
- cString = SUBSTITUTE('&1 &2 -> &3', STRING(TODAY,'99.99.9999'), STRING(TIME,'HH:MM:SS'), ipMessage).
- OUTPUT STREAM LogStream TO VALUE(cTempName) APPEND.
- PUT STREAM LogStream CONTROL cString CHR(10).
- OUTPUT STREAM LogStream CLOSE.
- RETURN TRUE.
- END FUNCTION.
- /* _UIB-CODE-BLOCK-END */
- &ANALYZE-RESUME
- &ENDIF
|