From bd5e073aa841af6715e7a03b168cf657a2d3091d Mon Sep 17 00:00:00 2001 From: Alex Zaw Date: Wed, 25 Feb 2026 23:01:13 +0000 Subject: [PATCH] Update Function GET_XA_DOMAIN_CLASS_INFO --- .../Functions/GET_XA_DOMAIN_CLASS_INFO.sql | 224 +++++++++++++++++- 1 file changed, 223 insertions(+), 1 deletion(-) diff --git a/CISTOOLS/Functions/GET_XA_DOMAIN_CLASS_INFO.sql b/CISTOOLS/Functions/GET_XA_DOMAIN_CLASS_INFO.sql index 6e72164..0ada686 100644 --- a/CISTOOLS/Functions/GET_XA_DOMAIN_CLASS_INFO.sql +++ b/CISTOOLS/Functions/GET_XA_DOMAIN_CLASS_INFO.sql @@ -1 +1,223 @@ -@@\@^@ % %@@@@Kmmmm@M@ %m@M]@]@ %@@M@ %m@M]@k@ %@M]@k@ %m@M]@k@ %m@M]@k@ %mm@M]@k@ %mm@M]@k@ %@M]@k@ %m@M]@k@ %m@@k@ %m@@k@ %m@@k@ %m@@k@ %mm@@k@ %mm@@]@@@ %@@ %@Kmmmm@ %@@ %@@@ %@@@@ %@@@@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@Mk@k@]@k@ %@~@\@k@ %@~@\@k@ %@~@\@@@ %@ %@m@@^@ %``@¤@⨢Ӊ@^@ %@m@~@m@M@}Lo@~}}K}}@on%LZ@⨢`Ӊ@@}}⨢ӉمK}}n%L⨢`Ӊn%@@LӖ@Ʉ~}}PllP}}@~}}PllP}}@Ʉ~}}}}%@@@@@@@@@~}}KKKKŕɄ~PllPk%@@@@@@@@@@@@@@@@@@@@@@KKKK⨢Ձ~PllPk%@@@@@@@@@@@@@@@@@@@@@@KKKKӁɄ~}}an%@@Lم@ȁ~}}\}}@ȁ~}}\}}%@@@@@@@@@@@~}}}}@Ʉ~}}}}n%@@@@@@LӉĖÓɕ@~}}DžƉm}}@ԕ~}}PllP}}@י~}}⅗}}%@@@@@@@@@@@~}}}}@㉣~}}}}@֗~}}}}%@@@@@@@@@@@م~}}}}@ㅧɕ~}}}}@ŧיɕ~}}}}@an%@@Laمn%@@LӖ@ȁ~}}\}}an%La⨢`Ӊn}@]@^@ %``@@@@@ %@m@~@m@OO@}⨢Ӊم~}@OO@m@M@m@]@^@ %@m@~@m@OO@}P~}@OO@ %m@M@@M@@M@m@k@@k@@]@]@]@^@ %@m@~@m@OO@}P~}@OO@ %m@M@@M@@M@m@k@@k@@]@]@]@^@ %@m@~@m@OO@}P~}@OO@m@M@m@]@^@ %@m@~@m@OO@}P~}@OO@m@M@@M@m@]@]@^@ %@m@~@m@OO@}P~}@OO@m@M@m@]@^@ %``@Á@⨢Ӊ@ %@m@~@@M@@@K@m@M@m@]@]@^@ %@ %M@ %@@K@m@k@@K@@k@@K@m@k@ %@K@m@k@@K@mm@k@ %@K@mm@@mm@k@@K@@k@ %@M@m@M@]@@M@ %]@@@M@@]@]@@m@k@ %``@@@@@ %M@ %@\@ %@@M@ %@@ %@@M@ %}[a⨢`ӉaمaӉĖÓɕمaĖ \ No newline at end of file +SET PATH *LIBL ; + +CREATE OR REPLACE FUNCTION CISTOOLS.GET_XA_DOMAIN_CLASS_INFO ( + OBJECT_CLASS VARCHAR(256) ) + RETURNS TABLE ( + FIELD_NAME VARCHAR(128) , + DESCRIPTION VARCHAR(128) , + FIELD_TYPE VARCHAR(20) , + FIELD_LENGTH DECFLOAT(16) , + USE_IN_CREATE VARCHAR(10) , + USE_IN_MAINTAIN VARCHAR(10) , + NULLABLE VARCHAR(10) , + KEY_POSITION VARCHAR(10) , + ACTIONS_XML XML , + TITLE_XML XML , + OPTIONS_XML XML , + RELATIONSHIP_XML XML , + TEXT_INFO_XML XML , + EXTENDED_PROPERTIES_XML XML ) + LANGUAGE SQL + SPECIFIC CISTOOLS.GET_XA_DOMAIN_CLASS_INFO + NOT DETERMINISTIC + READS SQL DATA + CALLED ON NULL INPUT + SET OPTION ALWBLK = *ALLREAD , + ALWCPYDTA = *OPTIMIZE , + COMMIT = *NONE , + DECRESULT = (31, 31, 00) , + DYNDFTCOL = *NO , + DYNUSRPRF = *OWNER , + SRTSEQ = *HEX + BEGIN +DECLARE SL_RESP XML ; +-- Build SystemLink request; +SET SL_REQ = STRIP_SPACES ( ' + + + + + + + +' ) ; +-- URL encode the request +SET SL_REQ = SL_URL || 'SystemLinkRequest=' || URL_ENCODE ( SL_REQ ) ; +SET SL_REQ = SL_REQ || '&username=' || +URL_ENCODE ( TRIM ( SUBSTR ( SL_CREDS , 1 , 10 ) ) ) ; +SET SL_REQ = SL_REQ || '&password=' || +URL_ENCODE ( TRIM ( SUBSTR ( SL_CREDS , 11 , 10 ) ) ) ; +SET SL_REQ = SL_REQ || '&env=' || URL_ENCODE ( MAPICS_ENV ) ; +SET SL_REQ = SL_REQ || '&hostname=' || URL_ENCODE ( TRIM ( HOST_NAME ) ) ; +SET SL_REQ = SL_REQ || '&domainclass=' || URL_ENCODE ( OBJECT_CLASS ) ; +-- Call SystemLink +SET SL_RESP = XMLPARSE ( DOCUMENT QSYS2 . HTTP_GET ( SL_REQ ) ) ; +RETURN +( +SELECT K . FIELD_NAME , K . DESCRIPTION , K . FIELD_TYPE , +K . FIELD_LENGTH , K . USE_IN_CREATE , +K . USE_IN_UPDATE AS USE_IN_MAINTAIN , K . NULLABLE , +CAST ( ROW_NUMBER ( ) OVER ( +) AS VARCHAR ( 10 ) ) AS KEY_POSITION , +-- Attach full XML blocks +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/ActionsAllowed' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS ACTIONS_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/FormTitle' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS TITLE_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/CopyOptionInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS OPTIONS_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/RelationshipInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS RELATIONSHIP_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/TextRelationshipInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS TEXT_INFO_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/PropertyExtendedInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS EXTENDED_PROPERTIES_XML +FROM ( +VALUES SL_RESP +) AS D ( XMLDOC ) +LEFT JOIN +XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/KeyInfo/PropertyInfo' +PASSING D . XMLDOC AS "doc" COLUMNS FIELD_NAME VARCHAR ( 128 ) +PATH '@path' , DESCRIPTION VARCHAR ( 128 ) PATH 'text()' , +FIELD_TYPE VARCHAR ( 20 ) PATH '@format' , FIELD_LENGTH DECFLOAT ( +16 ) PATH '@length' , USE_IN_CREATE VARCHAR ( 10 ) PATH +'@canCreate' , USE_IN_UPDATE VARCHAR ( 10 ) PATH '@canUpdate' , +NULLABLE VARCHAR ( 10 ) PATH '@isNullAllowed' ) AS K +ON 1 = 1 +UNION ALL +SELECT P . FIELD_NAME , P . DESCRIPTION , P . FIELD_TYPE , +P . FIELD_LENGTH , P . USE_IN_CREATE , +P . USE_IN_UPDATE AS USE_IN_MAINTAIN , P . NULLABLE , +CAST ( NULL AS VARCHAR ( 10 ) ) AS KEY_POSITION , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/ActionsAllowed' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS ACTIONS_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/FormTitle' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS TITLE_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/CopyOptionInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS OPTIONS_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/RelationshipInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS RELATIONSHIP_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/TextRelationshipInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS TEXT_INFO_XML , +( +SELECT * +FROM TABLE ( +SELECT X +FROM XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/PropertyExtendedInfo' +PASSING D . XMLDOC AS "doc" COLUMNS X XML PATH '.' ) +) +LIMIT 1 ) AS EXTENDED_PROPERTIES_XML +FROM ( +VALUES SL_RESP +) AS D ( XMLDOC ) +LEFT JOIN +XMLTABLE ( +'$doc/System-Link/Response/ListDomainClassInfoResponse/DomainClassInfo/PropertyInfo' +PASSING D . XMLDOC AS "doc" COLUMNS FIELD_NAME VARCHAR ( 128 ) +PATH '@path' , DESCRIPTION VARCHAR ( 128 ) PATH 'text()' , +FIELD_TYPE VARCHAR ( 20 ) PATH '@format' , FIELD_LENGTH DECFLOAT ( +16 ) PATH '@length' , USE_IN_CREATE VARCHAR ( 10 ) PATH +'@canCreate' , USE_IN_UPDATE VARCHAR ( 10 ) PATH '@canUpdate' , +NULLABLE VARCHAR ( 10 ) PATH '@isNullAllowed' ) AS P +ON 1 = 1 ) ; +END ; + +COMMENT ON PARAMETER SPECIFIC FUNCTION CISTOOLS.GET_XA_DOMAIN_CLASS_INFO +( OBJECT_CLASS IS 'Object Class' ) ; + +LABEL ON SPECIFIC FUNCTION CISTOOLS.GET_XA_DOMAIN_CLASS_INFO + IS 'Get Xa Domain Class Info' ; + +GRANT ALTER , EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.GET_XA_DOMAIN_CLASS_INFO +TO AMAPICS WITH GRANT OPTION ; + +GRANT EXECUTE +ON SPECIFIC FUNCTION CISTOOLS.GET_XA_DOMAIN_CLASS_INFO +TO PUBLIC ; +