Stop Dont throw away that ADM 2 code

  • Slides: 18
Download presentation
Stop! Don’t throw away that ADM 2 code just yet… Jeff Ledbetter Product Architect,

Stop! Don’t throw away that ADM 2 code just yet… Jeff Ledbetter Product Architect, Roundtable Software

Who do we think we are? § Roundtable TSMS • Software Configuration Management for

Who do we think we are? § Roundtable TSMS • Software Configuration Management for Open. Edge § Roundtable Team • Basic version control built on Eclipse team API 2 © 2015 Roundtable Software, Inc.

Who do we think we are? 3 © 2015 Roundtable Software, Inc.

Who do we think we are? 3 © 2015 Roundtable Software, Inc.

Future-proof. 4 © 2015 Roundtable Software, Inc.

Future-proof. 4 © 2015 Roundtable Software, Inc.

ADM 2 BL UI 5 SDO © 2015 Roundtable Software, Inc. DB

ADM 2 BL UI 5 SDO © 2015 Roundtable Software, Inc. DB

ADM 2 BL UI SDO Proxy 6 © 2015 Roundtable Software, Inc. DB

ADM 2 BL UI SDO Proxy 6 © 2015 Roundtable Software, Inc. DB

ADM 2 BL UI ABL Proxy JAVA 7 DB SDO . NET © 2015

ADM 2 BL UI ABL Proxy JAVA 7 DB SDO . NET © 2015 Roundtable Software, Inc.

Build It § Define your model • Row. Object temp-table § Build integration points

Build It § Define your model • Row. Object temp-table § Build integration points • server. Send. Rows • server. Commit § Build proxy layer § Expand 8 © 2015 Roundtable Software, Inc.

/* get. Row. Object. p */ DEFINE INPUT-OUTPUT INPUT PARAMETER pc. Row. Ident pi.

/* get. Row. Object. p */ DEFINE INPUT-OUTPUT INPUT PARAMETER pc. Row. Ident pi. Rows. To. Return ph. Sdo ph. TT DEFINE VARIABLE h. Row. Obj AS HANDLE DEFINE VARIABLE h. Row. Obj. Qry AS HANDLE DEFINE VARIABLE i. Rows. Ret AS INTEGER AS AS CHARACTER INTEGER HANDLE NO-UNDO. /* handle of Row. Object temp table */ NO-UNDO. /* handle of Row. Object temp table query */ NO-UNDO. RUN server. Send. Rows IN ph. Sdo (INPUT ? , /* ? = use the 2 nd parameter as starting point */ INPUT pc. Row. Ident, INPUT (IF pc. Rowident <> "FIRST": U AND pc. Row. Ident <> "LAST": U THEN TRUE ELSE FALSE), INPUT pi. Rows. To. Return, OUTPUT i. Rows. Ret, OUTPUT TABLE-HANDLE ph. TT). IF pi. Rows. To. Return GT 0 THEN DO: IF i. Rows. Ret LT pi. Rows. To. Return THEN pc. Row. Ident = "". ELSE DO: ph. TT: DEFAULT-BUFFER-HANDLE: FIND-LAST(). pc. Row. Ident = ph. TT: DEFAULT-BUFFER-HANDLE: BUFFER-FIELD("row. Ident"): BUFFER-VALUE. END. ELSE pc. Row. Ident = "". RETURN. 9

/* Get. Customer. p - Fetch the Customer by name. */ DEFINE INPUT PARAMETER

/* Get. Customer. p - Fetch the Customer by name. */ DEFINE INPUT PARAMETER pc. Name AS CHARACTER NO-UNDO. DEFINE OUTPUT PARAMETER TABLE-HANDLE ph. TT. DEFINE VARIABLE c. Row. Ident AS CHARACTER DEFINE VARIABLE h. Sdo AS HANDLE NO-UNDO INITIAL "FIRST". NO-UNDO. DEFINE TEMP-TABLE tt. Customer {pug/sdo. Customer. i} {src/adm 2/robjflds. i}. ph. TT = TEMP-TABLE tt. Customer: HANDLE. IF pc. Name = "" THEN DO: /* If no name is given, return an empty record. */ CREATE tt. Customer. RETURN. END. RUN pug/sdo. Customer. w PERSISTENT SET h. Sdo. /* Start SDO */ DYNAMIC-FUNCTION('select. Name': U IN h. Sdo, pc. Name). /* Set Query */ RUN pug/get. Row. Object. p (INPUT-OUTPUT c. Row. Ident, 0, h. Sdo, ph. TT ). /* Fetch data into our temp-table */ RETURN. FINALLY: RUN destroy. Object IN h. Sdo NO-ERROR. DELETE OBJECT ph. TT NO-ERROR. END FINALLY. 10

/* Get. Customer. Sample. p */ DEFINE VARIABLE h. TT AS HANDLE NO-UNDO. RUN

/* Get. Customer. Sample. p */ DEFINE VARIABLE h. TT AS HANDLE NO-UNDO. RUN pug/Get. Customer. p ("Roundtable Software", OUTPUT TABLE-HANDLE h. TT). /* Prove it!*/ RUN pug/view. Temp. Table. w (h. TT). RETURN. FINALLY: DELETE OBJECT h. TT NO-ERROR. END FINALLY. 11

/* set. Row. Object. p */ DEFINE INPUT PARAMETER pc. Sdo AS CHARACTER NO-UNDO.

/* set. Row. Object. p */ DEFINE INPUT PARAMETER pc. Sdo AS CHARACTER NO-UNDO. PARAMETER ph. TT AS HANDLE NO-UNDO. FUNCTION get. Row. Mod RETURNS CHARACTER PRIVATE DEFINE DEFINE VARIABLE VARIABLE c. Messages c. Undo. Ids h. Sdo h. Row. Obj. Upd l. Success l. Add AS AS AS CHARACTER HANDLE LOGICAL ( ) FORWARD. NO-UNDO INITIAL TRUE. NO-UNDO INITIAL NO. $UPDATE-ROW: DO ON ERROR UNDO, LEAVE: RUN create_update_record. RUN VALUE(pc. Sdo) PERSISTENT SET h. Sdo. RUN server. Commit IN h. Sdo(INPUT-OUTPUT TABLE-HANDLE h. Row. Obj. Upd, OUTPUT c. Messages, OUTPUT c. Undo. Ids). IF c. Messages <> "" THEN LEAVE $UPDATE-ROW. IF get. Row. Mod() = "A": U THEN RUN update_rowident. END. /* $UPDATE-ROW */ 12

/* Delete. Customer. Sample. p */ DEFINE VARIABLE c. Error AS CHARACTER NO-UNDO. DEFINE

/* Delete. Customer. Sample. p */ DEFINE VARIABLE c. Error AS CHARACTER NO-UNDO. DEFINE VARIABLE h. Buf AS HANDLE NO-UNDO. DEFINE VARIABLE h. TT AS HANDLE NO-UNDO. RUN pug/Get. Customer. p ("Roundtable Software", OUTPUT TABLE-HANDLE h. TT). h. Buf = h. TT: DEFAULT-BUFFER-HANDLE. h. Buf: FIND-FIRST(). h. Buf: : Row. Mod = "D". RUN pug/Set. Customer. p (INPUT-OUTPUT TABLE-HANDLE h. TT, OUTPUT c. Error). IF c. Error <> "" THEN MESSAGE c. Error VIEW-AS ALERT-BOX ERROR. FINALLY: DELETE OBJECT h. TT NO-ERROR. END FINALLY. 13

ADM 2 BL UI ABL Proxy JAVA 14 DB SDO . NET © 2015

ADM 2 BL UI ABL Proxy JAVA 14 DB SDO . NET © 2015 Roundtable Software, Inc. REST XML Mobile Web

/* Get. Customer. Json. p */ DEFINE INPUT PARAMETER pc. Name AS CHARACTER NO-UNDO.

/* Get. Customer. Json. p */ DEFINE INPUT PARAMETER pc. Name AS CHARACTER NO-UNDO. DEFINE OUTPUT PARAMETER plc. Json AS LONGCHAR NO-UNDO. DEFINE VARIABLE h. TT AS HANDLE NO-UNDO. RUN pug/Get. Customer. p ("Roundtable Software", OUTPUT TABLE-HANDLE h. TT). h. TT: WRITE-JSON ("LONGCHAR", plc. Json, FALSE). RETURN. FINALLY: DELETE OBJECT h. TT NO-ERROR. END FINALLY. 15

Sample Code ftp: //ftp. roundtable-software. com/public 16 © 2015 Roundtable Software, Inc.

Sample Code ftp: //ftp. roundtable-software. com/public 16 © 2015 Roundtable Software, Inc.

Questions? 17 © 2015 Roundtable Software, Inc.

Questions? 17 © 2015 Roundtable Software, Inc.