Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...


Bloco de código
themeRDark
titleprograma.p
USING com.totvs.framework.sec.ProtectedData.

FIND FIRST tabela_negocio EXCLUSIVE-LOCK:
ASSIGN tabela_negocio.nom_cliente    = ProtectedData:DefaultAnonymousCharacter
       tabela_negocio.cod_rg         = ProtectedData:DefaultAnonymousNumber
       tabela_negocio.dat_nascimento = ProtectedData:DefaultAnonymousDate.

03. getAnonymizableFieldsByDatabase

Objetivo

Responsável por retornar os campos ativos e passíveis de anonimização, filtrados por uma lista de bancos. São retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis, não é realizada validação do Metaschema do banco de dados.

Para verificação do campo com validações de consistência no Metaschema do banco de dados utilize o método 06. isFieldAnonymizable.

MESSAGE STRING(ProtectedData:DefaultAnonymousCharacter) 
VIEW-AS ALERT-BOX INFO BUTTONS OK.

MESSAGE STRING(ProtectedData:DefaultAnonymousNumber) 
VIEW-AS ALERT-BOX INFO BUTTONS OK.

MESSAGE STRING(ProtectedData:DefaultAnonymousDate) 
VIEW-AS ALERT-BOX INFO BUTTONS OK.

03. isFieldAnonymizable

Objetivo

Responsável por retornar se o campo é anonimizável ou não.

Parâmetros de entrada

Tipo

Descrição

JsonArray

O valor de entrada é um objeto do tipo JsonArray

Bloco de código
themeRDark
collapsetrue
[  
    {  
        "databaseName":"emsfnd"
    },
    {  
        "databaseName":"emsfnd2"
    }
]
CHARACTER

databaseName: Nome do banco de dados;

CHARACTER

tableName: Nome da tabela.

CHARACTER

fieldName: Nome do campo;

databaseName: Nome do banco de dados.


Retorno

TipoDescrição
JsonArray
LOGICAL
  • Formato de retorno é do tipo JsonArray.
  • O agrupamento dos registros será por banco.
  • O retorno será VERDADEIRO/FALSO, podendo retornar erro que deve ser capturado utilizando a declaração do 'CATCH'.

    O erros serão lançados por meio da classe fwk.utils.CustomError

    Expandir
    titleERROR 47

    Será lançado ao informar parâmetros de entrada de um campo não configurado em Gerenciamento dos campos pessoais e/ou sensíveis

    Caso não exista registro para o banco informado, será retornado o objeto anonymizableFields sem registros

    .

    Bloco de código
    themeRDark
    collapse
    true
    [
       {
       
    "databaseName":
     
    "emsfnd",
        "
    anonymizableFields
    ErrorSequence": 
    [ {
    1,
            "
    tableName
    ErrorNumber": 
    "tabela_teste"
    47,
            "
    fieldName
    ErrorDescription": "
    campo_teste", "defaultRecord": true
    Campo pessoal não cadastrado(a)",
            "
    sensitiveField
    ErrorParameters": 
    true
    "Campo pessoal",
            "
    documentTypeId
    ErrorType": 
    1
    "ERROR",
            "
    documentTypeDes
    ErrorHelp": "
    CPF
    Campo pessoal não cadastrado(a).",
            "
    classifiers
    ErrorSubType": 
    [
    "ERROR"
        }
    ]
    Expandir
    titleERROR 56

    Será lançado ao informar parâmetros de entrada de um campo inexistente no banco de dados.

    Bloco de código
    themeRDark
    [
       
    {
            
    "
    id
    ErrorSequence": 1,
            
    "
    defaultRelation
    ErrorNumber": 
    true
    56,
    
            "
    justificative
    ErrorDescription": "
    Justificativa do Campo
    Campo inexistente.",
    
            
    "
    description
    ErrorParameters": "
    Execução de Contrato
    Campo",
    
            
    } ] } ] }, { "databaseName
    "ErrorType": "
    emsfnd2
    ERROR",
        
    "anonymizableFields":
     
    []
      
    } ]Exemplo de programa
    Bloco de código
    themeRDark
    titleprograma.p
    collapsetrue
    USING Progress.Json.ObjectModel.*.
    USING com.totvs.framework.sec.ProtectedData.
    
    DEFINE VARIABLE jObjRequest  AS JsonObject NO-UNDO.
    DEFINE VARIABLE jArrRequest  AS JsonArray  NO-UNDO.
    DEFINE VARIABLE jArrResponse AS JsonArray  NO-UNDO.
    
    jArrRequest = NEW JsonArray().
    
    jObjRequest = NEW JsonObject().
    jObjRequest:ADD("databaseName","emsfnd").
    jArrRequest:ADD(jObjRequest).
    
    jObjRequest = NEW JsonObject().
    jObjRequest:ADD("databaseName","emsfnd2").
    jArrRequest:ADD(jObjRequest).
    
    jArrResponse = ProtectedData:getAnonymizableFieldsByDatabase(jArrRequest).
    
    jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).

    04. getAnonymizableFieldsByTable

    Objetivo

    ...

     "ErrorHelp": "Verifique se existe uma ocorrência para o(a) Campo informado(a) em seu cadastro.",
            "ErrorSubType": "ERROR"
        }
    ]
    Expandir
    titleERROR 1094

    Será lançado ao informar parâmetros de entrada de um campo desativado em Gerenciamento dos campos pessoais e/ou sensíveis

    ...

    .

    ...

    Para verificação do campo com validações de consistência no Metaschema do banco de dados utilize o método 06. isFieldAnonymizable.

    Parâmetros de entrada

    Tipo

    Descrição

    JsonArray

    O valor de entrada é um objeto do tipo JsonArray

    Bloco de código
    themeRDark
    collapsetrue
    [
    
    
       {
    
            "
    databaseName
    ErrorSequence":
    "emsfnd" }
     1,
        
    {
      
      
    "databaseName
    "ErrorNumber":
    "emsfnd2" } ]

    databaseName: Nome do banco de dados.

    tableName: Nome da tabela.

    Retorno

    TipoDescriçãoJsonArray
    • Formato de retorno é do tipo JsonArray.
    • O agrupamento dos registros será por banco e tabela.
    • Caso não exista registro para o banco e tabela informado, será retornado o objeto anonymizableFields sem registros.
    Bloco de código
    themeRDark
    collapsetrue
    [ {
     1094,
          
    "databaseName":
     
    "emsfnd",
     
    "
    tableName
    ErrorDescription": "
    tabela_teste", "anonymizableFields": [
    Campo pessoal está desativado(a).",
       
    {
         
    "
    fieldName
    ErrorParameters": "
    campo_teste
    Campo pessoal",
            "
    defaultRecord
    ErrorType": 
    true
    "ERROR",
            "
    sensitiveField
    ErrorHelp":
    true,
     
    "
    documentTypeId
    "
    : 1
    ,
            "
    documentTypeDes
    ErrorSubType": "
    CPF
    ERROR"
    ,
    
        
    "classifiers": [ {
    }
    ]
    Expandir
    titleERROR 56891

    Será lançado ao informar parâmetros de entrada nulos ou vazios.

    Bloco de código
    themeRDark
    [
       {
            
    "
    id
    ErrorSequence": 1,
    
            "
    defaultRelation
    ErrorNumber": 
    true
    56891,
            
    "
    justificative
    ErrorDescription": "
    Justificativa do Campo
    Parâmetros incorretos.",
    
            "
    description
    ErrorParameters": "
    Execução de Contrato
    ",
            
    } ] }
    "ErrorType": "ERROR",
        
    ]
      
    },
      
    { "databaseName
    "ErrorHelp": "
    emsfnd2
    ",
    "tableName": "tabela_teste", "anonymizableFields": [] } ]Exemplo de programa Bloco de código
    themeRDark
    titleprograma.p
    collapsetrue
    USING Progress.Json.ObjectModel.*.
    
    
    USING com.totvs.framework.sec.ProtectedData. DEFINE
     
    VARIABLE
     
    jObjRequest
      
    AS
     
    JsonObject
     
    NO-UNDO. DEFINE
     
    VARIABLE
     
    jArrRequest AS JsonArray NO-UNDO. DEFINE VARIABLE jArrResponse AS JsonArray NO-UNDO. jArrRequest = NEW JsonArray(). jObjRequest = NEW JsonObject(). jObjRequest:ADD("databaseName","emsfnd"). jObjRequest:ADD("tableName","tabela_teste"). jArrRequest:ADD(jObjRequest). jObjRequest = NEW JsonObject(). jObjRequest:ADD("databaseName","emsfnd"). jObjRequest:ADD("tableName","tabela_teste"). jArrRequest:ADD(jObjRequest). jArrResponse = ProtectedData:getAnonymizableFieldsByTable(jArrRequest). jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).

    05. getAnonymizableFieldsByRoutine

    Objetivo

    Responsável por retornar os campos ativos e passíveis de anonimização, filtrados por uma lista de rotinas. São retornados os registros configurados em Relacionamento das rotinas com campos pessoais e/ou sensíveis, não é realizada validação do Metaschema do banco de dados.

    Para verificação do campo com validações de consistência no Metaschema do banco de dados utilize o método 06. isFieldAnonymizable.

    Parâmetros de entrada

    ...

    Tipo

    ...

    Descrição

    ...

    O valor de entrada é um objeto do tipo JsonArray, contendo códigos do progrmas.

    Bloco de código
    themeRDark
    collapsetrue
    ["programa_teste","programa_teste2"]
    "ErrorSubType": "ERROR"
        }
    ]
    Expandir
    titleERROR 56893

    Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que faz parte de um índice único.

    Bloco de código
    themeRDark
    [
       

    Retorno

    TipoDescriçãoJsonArray
    • Formato de retorno é do tipo JsonArray.
    • O agrupamento dos registros será por código e nome do programa.
    • Caso não exista registro relacionado com o programa, será retornado o objeto anonymizableFields sem registros.
    Bloco de código
    themeRDark
    collapsetrue
    [
    {
            "
    programCode
    ErrorSequence": 
    "programa_teste"
    1,
            "
    programName
    ErrorNumber": 
    "Programa de teste"
    56893,
            "
    anonymizableFields
    ErrorDescription": 
    [{ "databaseName": "banco_teste", "tabledName": "tabela_teste",
    "Campo pessoal anonimizavel faz parte de um índice único",
            "
    fieldName
    ErrorParameters": "
    campo_teste
    ",
    
            
    "defaultRecord
    "ErrorType": 
    true
    "ERROR",
    
            "
    sensitiveField
    ErrorHelp": 
    true,
    "Campo pessoal configurado como anonimizavel faz parte de um índice único e não poderá ser 
    "documentTypeId": 1
    anonimizado.",
    
            
    "
    documentTypeDes
    ErrorSubType": "
    CPF
    ERROR"
    ,
    
        }
    ]
    Expandir
    titleERROR 57240

    Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que é do tipo lógico.

    Bloco de código
    themeRDark
    [
       {
            
    "
    classifiers
    ErrorSequence": 
    [{
    1,
            "
    id
    ErrorNumber": 
    1
    57240,
            "ErrorDescription": "Campo pessoal anonimizavel é do tipo 
    lógico",
            "
    defaultRelation
    ErrorParameters": 
    true
    "",
    
            
    "justificative
    "ErrorType": "
    Justificativa do Campo
    ERROR",
            
    "description
    "ErrorHelp": "
    Execução
    Campo 
    de
    pessoal 
    Contrato"
    configurado como anonimizavel é do tipo lógico e não poderá 
    }
    ser anonimizado.",
            
    ]
    "ErrorSubType": "ERROR"
        }
    
    ] },
    ]
    Expandir
    titleERROR 57269

    Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que é do tipo blob.

    Bloco de código
    themeRDark
    [
       {
            "
    programCode
    ErrorSequence": 
    "programa_teste2"
    1,
            "
    programName
    ErrorNumber": 
    "Programa de teste2"
    57269,
            "
    anonymizableFields
    ErrorDescription": 
    [{ "databaseName": "banco_teste2", "tabledName": "tabela_teste2",
    "Campo pessoal anonimizavel é do tipo blob",
            
    "
    fieldName
    ErrorParameters": "
    campo_teste2
    ",
    
            
    "
    defaultRecord
    ErrorType": 
    true
    "ERROR",
            
    "sensitiveField
    "ErrorHelp": 
    true,
    "Campo pessoal configurado como anonimizavel é do tipo blob e não poderá 
    "documentTypeId": 1,
    ser anonimizado.",
            
    "
    documentTypeDes
    ErrorSubType": "
    CPF
    ERROR"
    ,
    
        
    "classifiers": [{
    }
    ]
    Expandir
    titleERROR 57360

    Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que é chave primária.

    Bloco de código
    themeRDark
    [
       {
            
    "id
    "ErrorSequence": 1,
    
            "
    defaultRelation
    ErrorNumber": 
    true
    57360,
            "ErrorDescription": "Campo pessoal anonimizavel é chave primária.",
            
    "
    justificative
    ErrorParameters": "
    Justificativa do Campo
    ",
    
            
    "description
    "ErrorType": "
    Execução de Contrato" }
    ERROR",
            
    ] } ] } ]Exemplo de programa
    Bloco de código
    themeRDark
    titleprograma.p
    collapsetrue
    USING Progress.Json.ObjectModel.*.
    USING com.totvs.framework.sec.ProtectedData.
    
    DEFINE VARIABLE jArrRequest  AS JsonArray  NO-UNDO.
    DEFINE VARIABLE jArrResponse AS JsonArray  NO-UNDO.
    
    jArrRequest = NEW JsonArray().
    jArrRequest:ADD("bas_prog_dtsul").
    jArrRequest:ADD("bas_som").
    jArrRequest:ADD("sec000aa").
    jArrRequest:ADD("bas_procedimento").
    
    jArrResponse = ProtectedData:getAnonymizableFieldsByRoutine(jArrRequest).
    
    jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).

    06. isFieldAnonymizable

    Objetivo

    Responsável por retornar se o campo é anonimizável ou não.

    Parâmetros de entrada

    ...

    Tipo

    ...

    Descrição

    ...

    Formato JSON Object, com os atributos:

    • databaseName: Nome do banco de dados;
    • tableName: Nome da tabela;
    • fieldName: Nome do campo.
    Bloco de código
    themeRDark
    collapsetrue
    {
        "databaseName":"db1",
        "tableName":"tabela1",
        "fieldName":"campo1"
    }

    Retorno

    TipoDescriçãoJsonObject

    Formato JSON Object.

    Bloco de código
    themeRDark
    collapsetrue
    { "databaseName":"db1
    "ErrorHelp": "Campo pessoal configurado como anonimizavel é chave primária e não poderá ser anonimizado.",
        
    "tableName":"tabela1",
        "
    fieldName
    ErrorSubType": "
    campo1
    ERROR"
    ,
    
        
    "anonymizable": true }

    Se houver campo pessoal cadastrado com os dados informados no objeto de parâmetro:

  • Será inserida a propriedade "anonymizable" com o valor recuperado da base de dados.
  • Caso  o objeto passado como parâmetro  esteja incorreto, o campo não esteja cadastrado ou o campo faça parte de um índice único, o método retornará um erro que deve ser capturado utilizando a declaração do 'CATCH'.
    }
    ]
    Exemplo de programa
    Bloco de código
    themeRDark
    titleprograma.p
    collapsetrue
    USING 
    Progress.Json.ObjectModel.*. USING
    com.totvs.framework.sec.ProtectedData.
    
    DEFINE VARIABLE 
    jObjRequest
    lReturn AS 
    JsonObject NO-UNDO. DEFINE VARIABLE jObjResponse AS JsonObject
    LOGICAL     NO-UNDO.
    
    DO ON ERROR UNDO, LEAVE:
        
    jObjRequest = NEW JsonObject(). jObjRequest:ADD("databaseName","emsfnd"). jObjRequest:ADD("tableName","usuar_mestre"). jObjRequest:ADD("fieldName","nom_usuario"). jObjResponse
    ASSIGN lReturn = ProtectedData:isFieldAnonymizable
    (jObjRequest).
     
    MESSAGE STRING(jObjResponse:GetJsonText()) VIEW-AS ALERT-BOX INFORMATION BUTTONS OK. CATCH customError AS fwk.utils.CustomError: MESSAGE STRING(customError:arryaOfErrors:getJsonText()) VIEW-AS ALERT-BOX INFO BUTTONS OK. END CATCH. END. DO ON ERROR UNDO, LEAVE: jObjRequest = NEW JsonObject(). jObjRequest:ADD("databaseName","emsfnd"). jObjRequest:ADD("tableName","agenda_rpw3"). jObjRequest:ADD("fieldName","cdn_trans_edi2"). jObjResponse = ProtectedData:isFieldAnonymizable(jObjRequest). MESSAGE STRING(jObjResponse:GetJsonText())
    (INPUT "emsfnd", INPUT "tabela_teste", INPUT "campo_teste").
        MESSAGE lReturn VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    
        CATCH customError AS fwk.utils.CustomError:
            MESSAGE STRING(customError:arryaOfErrors:getJsonText())
     VIEW-AS ALERT-BOX INFO BUTTONS OK.
        END CATCH.
    END.



    HTML
    <!-- esconder o menu --> 
    
    
    <style>
    div.theme-default .ia-splitter #main {
        margin-left: 0px;
    }
    .ia-fixed-sidebar, .ia-splitter-left {
        display: none;
    }
    #main {
        padding-left: 10px;
        padding-right: 10px;
        overflow-x: hidden;
    }
    
    .aui-header-primary .aui-nav,  .aui-page-panel {
        margin-left: 0px !important;
    }
    .aui-header-primary .aui-nav {
        margin-left: 0px !important;
    }
    </style>