En aquest tema, explorarem com el llenguatge RPG pot interactuar amb altres llenguatges de programació. Aquesta capacitat és crucial per integrar aplicacions RPG amb sistemes moderns i tecnologies diverses. Aprendrem a cridar funcions externes, a utilitzar APIs i a gestionar dades entre RPG i altres llenguatges.
Objectius d'Aprenentatge
- Comprendre els conceptes bàsics d'interfície entre RPG i altres llenguatges.
- Aprendre a cridar funcions externes des de RPG.
- Gestionar dades entre RPG i altres llenguatges.
- Utilitzar APIs per a la integració de sistemes.
Conceptes Clau
- Cridar Funcions Externes
RPG pot cridar funcions escrites en altres llenguatges com C, Java, o Python. Això es fa mitjançant l'ús de procediments externs.
Exemple de Crida a una Funció en C
// RPG Code: callc.rpgle D myfunction PR EXTPROC('myfunction') /free myfunction(); *inlr = *on; /end-free
Explicació:
EXTPROC('myfunction')
indica quemyfunction
és una funció externa definida en un altre llenguatge.- La funció
myfunction
és cridada des de RPG com si fos una funció nativa.
- Utilitzar APIs
Les APIs permeten que RPG interactuï amb serveis externs, com ara serveis web o biblioteques de tercers.
Exemple d'Ús d'una API REST amb HTTPAPI
// RPG Code: callapi.rpgle D http_url_get PR 10I 0 EXTPROC('http_url_get') D url 65535A OPTIONS(*VARSIZE) D response 65535A OPTIONS(*VARSIZE) D url S 65535A VARYING D response S 65535A VARYING /free url = 'http://api.example.com/data'; http_url_get(url: response); dsply response; *inlr = *on; /end-free
Explicació:
http_url_get
és una funció externa que fa una petició GET a una URL.url
conté l'adreça de l'API.response
emmagatzema la resposta de l'API.
- Gestionar Dades entre RPG i Altres Llenguatges
Quan es treballa amb dades entre RPG i altres llenguatges, és important assegurar-se que els formats de dades siguin compatibles.
Exemple de Gestió de Dades amb JSON
// RPG Code: jsonhandling.rpgle D json_parse PR 10I 0 EXTPROC('json_parse') D jsonString 65535A OPTIONS(*VARSIZE) D jsonObject 65535A OPTIONS(*VARSIZE) D jsonString S 65535A VARYING D jsonObject S 65535A VARYING /free jsonString = '{"name": "John", "age": 30}'; json_parse(jsonString: jsonObject); dsply jsonObject; *inlr = *on; /end-free
Explicació:
json_parse
és una funció externa que converteix una cadena JSON en un objecte RPG.jsonString
conté les dades JSON.jsonObject
emmagatzema l'objecte resultant.
Exercicis Pràctics
Exercici 1: Cridar una Funció en C
- Escriu una funció en C que retorni la suma de dos enters.
- Crida aquesta funció des d'un programa RPG i mostra el resultat.
Exercici 2: Utilitzar una API REST
- Utilitza una API pública per obtenir dades meteorològiques.
- Fes una petició GET des d'un programa RPG i mostra la resposta.
Exercici 3: Gestionar Dades JSON
- Escriu un programa RPG que converteixi una cadena JSON en un objecte RPG.
- Mostra els valors dels camps de l'objecte.
Solucions
Solució a l'Exercici 1
// RPG Code: callsum.rpgle D sum PR 10I 0 EXTPROC('sum') D a 10I 0 VALUE D b 10I 0 VALUE /free dsply sum(5: 3); *inlr = *on; /end-free
Solució a l'Exercici 2
// RPG Code: callweatherapi.rpgle D http_url_get PR 10I 0 EXTPROC('http_url_get') D url 65535A OPTIONS(*VARSIZE) D response 65535A OPTIONS(*VARSIZE) D url S 65535A VARYING D response S 65535A VARYING /free url = 'http://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=London'; http_url_get(url: response); dsply response; *inlr = *on; /end-free
Solució a l'Exercici 3
// RPG Code: parsejson.rpgle D json_parse PR 10I 0 EXTPROC('json_parse') D jsonString 65535A OPTIONS(*VARSIZE) D jsonObject 65535A OPTIONS(*VARSIZE) D jsonString S 65535A VARYING D jsonObject S 65535A VARYING /free jsonString = '{"name": "John", "age": 30}'; json_parse(jsonString: jsonObject); dsply jsonObject; *inlr = *on; /end-free
Resum
En aquesta secció, hem après com RPG pot interactuar amb altres llenguatges de programació. Hem vist com cridar funcions externes, utilitzar APIs i gestionar dades entre RPG i altres llenguatges. Aquestes habilitats són essencials per integrar RPG amb sistemes moderns i ampliar les seves capacitats.
Curs de Programació RPG
Mòdul 1: Introducció a la Programació RPG
- Què és RPG?
- Configuració del Teu Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Programa Hello World
Mòdul 2: Conceptes Bàsics
Mòdul 3: Treballant amb Dades
Mòdul 4: Tècniques Avançades de Programació
Mòdul 5: RPG IV i Més Enllà
Mòdul 6: Integrant RPG amb Tecnologies Modernes
Mòdul 7: Aplicacions del Món Real
- Construint una Aplicació Simple
- Estudi de Cas: Sistema de Gestió d'Inventari
- Estudi de Cas: Sistema de Nòmines
- Millors Pràctiques i Revisió de Codi