{"id":21221473,"url":"https://github.com/worksofliam/ileusion","last_synced_at":"2025-03-15T01:14:23.157Z","repository":{"id":114429266,"uuid":"292315459","full_name":"worksofliam/ileusion","owner":"worksofliam","description":"ILEusion a.k.a. XMLService 2 / xmlservice with JSON","archived":false,"fork":false,"pushed_at":"2020-09-02T15:57:40.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-21T17:11:58.131Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/worksofliam.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-02T15:03:32.000Z","updated_at":"2021-10-01T13:46:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"bad3ca0f-691a-4d6a-84be-cb5be5e63014","html_url":"https://github.com/worksofliam/ileusion","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worksofliam%2Fileusion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worksofliam%2Fileusion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worksofliam%2Fileusion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/worksofliam%2Fileusion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/worksofliam","download_url":"https://codeload.github.com/worksofliam/ileusion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243668238,"owners_count":20328042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T22:28:20.361Z","updated_at":"2025-03-15T01:14:23.130Z","avatar_url":"https://github.com/worksofliam.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## ILEusion\n\nILEusion a.k.a. XMLService 2 / xmlservice with JSON. ILEusion is an application whichs allows your IBM i (programs, export function, data areas, data queues, etc) reached via SQL function. ILEusion used to be callable via web service, but now you just pass in the JSON into the under-defined function.\n\nFor example:\n\n```sql\n--FAK100 program call\nselect ileusion.ILEUSION_CALL(cast('[{\"action\": \"/call\", \"object\":\"FAK100\",\"library\":\"ILEUSION\",\"args\":[{\"value\":\"John\",\"type\":\"char\",\"length\":20},{\"value\":11,\"type\":\"int\",\"length\":10},{\"value\":8,\"type\":\"int\",\"length\":10},{\"value\":0,\"type\":\"int\",\"length\":10}]}]' as char(1024))) from sysibm.sysdummy1;\n--FAK101 program call\nselect ileusion.ILEUSION_CALL(cast('[{\"action\": \"/call\", \"object\":\"FAK101\",\"library\":\"ILEUSION\",\"args\":[{\"value\":\"Dave\",\"type\":\"char\",\"length\":20},{\"values\":[3,3,5],\"type\":\"int\",\"length\":10}]}]' as char(1024))) from sysibm.sysdummy1;\n--Data queue insert and pop\nselect ileusion.ILEUSION_CALL(cast('[{\"action\":\"/dq/send\",\"library\":\"ILEUSION\",\"object\":\"TESTDQ\",\"data\":\"Hello world\"},{\"action\":\"/dq/pop\",\"library\":\"ILEUSION\",\"object\":\"TESTDQ\",\"length\":20}]' as char(1024))) from sysibm.sysdummy1;\n--DS1 program call (with struct)\nselect ileusion.ILEUSION_CALL(cast('[{\"action\":\"/call\",\"library\":\"ILEUSION\",\"object\":\"DS1\",\"args\":[{\"type\":\"struct\",\"value\":[{\"type\":\"char\",\"length\":20,\"value\":\"Liam\"},{\"type\":\"int\",\"length\":3,\"value\":11},{\"type\":\"packed\",\"length\":11,\"precision\":2,\"value\":12.34}]}]}]' as char(1024))) from sysibm.sysdummy1;\n```\n\nSee the `headers` folder for the OpenAPI spec each different API call available.\n\nILEusion uses Sitemule's [excellent noxDB library](https://github.com/sitemule/noxDB) as the JSON parser.\n\n## Setup\n\n```\ngit clone git@github.com:sitemule/noxDB.git\ngit clone git@github.com:worksofliam/ileusion.git\ncd noxDB\ngmake\n\ncd ../ileusion\ngmake\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworksofliam%2Fileusion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworksofliam%2Fileusion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworksofliam%2Fileusion/lists"}