Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
/*------------------------------------------------------------------------------ Purpose: Inclui um atalho Local Notes: ------------------------------------------------------------------------------*/ PROCEDURE upsertLocalShortcut: DEFINE INPUT PARAMETER jsonInput AS JsonObject NO-UNDO. DEFINE INPUT PARAMETER isUpdate AS LOGICAL NO-UNDO. DEFINE VARIABLE idxShortcut AS INTEGER NO-UNDO. DEFINE VARIABLE payload AS JsonObject NO-UNDO. DEFINE VARIABLE payloadArray AS JsonArray NO-UNDO. DEFINE VARIABLE iCountPayload AS INTEGER NO-UNDO. DEFINE VARIABLE iPayloadLength AS INTEGER NO-UNDO. ASSIGN iPayloadLength = CAST(jsonInput:getJSONArray("payload"), "JSONArray"):LENGTH NO-ERROR. payloadArray = NEW JsonArray(). ASSIGN payloadArray = jsonInput:getJSONArray("payload") NO-ERROR. IF payloadArray:LENGTH = 0 THEN do: // caso o tamanho seja zero payload = CAST(jsonInput:getJSONObject("payload"), "JSONObject") NO-ERROR. //atribui object payloadArray:ADD(payload). //adiciona ao array END. iPayloadLength = payloadArray:LENGTH. DO iCountPayload = 1 TO iPayloadLength: ASSIGN payload = payloadArray:getJSONObject(iCountPayload) NO-ERROR. /* Valida os campos obrigatorios */ RUN validateLocalRequiredFields IN THIS-PROCEDURE (INPUT payload). IF NOT VALID-HANDLE(hExecutionShortcutRepository) THEN RUN btb/properties/infrastructure/domain/ExecutionShortcutRepository.p PERSISTENT SET hExecutionShortcutRepository. ASSIGN idxShortcut = getIdxShortcut(jsonInput, isUpdate). /* Validacoes somente para update */ IF isUpdate THEN DO: /* Valida se existe o registro no banco de dados */ RUN validateIndex IN THIS-PROCEDURE (INPUT idxShortcut). /* Valida o tipo do atalho se foi alterado */ RUN validateTypeShortcut IN THIS-PROCEDURE (INPUT idxShortcut, INPUT {&LOCAL_ACCESS}). END. /* Valida a descricao do atalho */ RUN validateDescriptionShortcut IN THIS-PROCEDURE ( INPUT idxShortcut, INPUT JsonAPIUtils:getPropertyJsonObject(payload, "description") ). RUN setDefaultShortcut IN THIS-PROCEDURE ( INPUT idxShortcut, INPUT JsonAPIUtils:getPropertyJsonObject(payload, "description") ). RUN upsertLocalShortcut IN hExecutionShortcutRepository (INPUT payload, INPUT STRING(idxShortcut)). END. FINALLY: DELETE PROCEDURE hExecutionShortcutRepository NO-ERROR. END FINALLY. END PROCEDURE. |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
DEFINE VARIABLE payloadArray AS JsonArray NO-UNDO. DEFINE VARIABLE iCountPayload AS INTEGER NO-UNDO. DEFINE VARIABLE iPayloadLength AS INTEGER NO-UNDO. ASSIGN iPayloadLength = CAST(jsonInput:getJSONArray("payload"), "JSONArray"):LENGTH NO-ERROR. // Pega o tamanho do Array o NO-ERROR é para não estourar erro caso venha um object payloadArray = NEW JsonArray(). // Cria um JsonArray vazio para receber o array de objetos vindo do payload ASSIGN payloadArray = jsonInput:getJSONArray("payload") NO-ERROR. // Pega o array de objetos e transforma no JsonArray IF payloadArray:LENGTH = 0 THEN do: // caso o tamanho seja zero, significa que é um object payload = CAST(jsonInput:getJSONObject("payload"), "JSONObject") NO-ERROR. //atribui objectSe entrou nesta condição significa que é um array payloadArray:ADD(payload). //adiciona o object ao array END. iPayloadLength = payloadArray:LENGTH. //Efetua novamente a leitura do object caso o mesmo seja um DO iCountPayload = 1 TO iPayloadLength: // Bloco de repetição para varrer o object ate o ultimo object do array ASSIGN payload = payloadArray:getJSONObject(iCountPayload) NO-ERROR. // A cada execução um object do array é executado //Aqui seu trecho de codigo e validações END. // Fim do bloco de repetição |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas