Á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.

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.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":"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
    collapsetrue
    [
       {
        
    "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

    ...

    Tipo

    Descrição

    JsonArray

    O valor de entrada é um objeto do tipo JsonArray

    .

    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

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

    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
    [ { "databaseName": "emsfnd",
    "ErrorDescription": "Campo pessoal está desativado(a).",
            "
    tableName
    ErrorParameters": "
    tabela_teste
    Campo pessoal",
        
    "anonymizableFields":
     
    [
       
    { "fieldName
    "ErrorType": "
    campo_teste
    ERROR",
            "
    defaultRecord
    ErrorHelp": 
    true,
    "
    sensitiveField
    "
    : true
    ,
            "
    documentTypeId
    ErrorSubType":
    1,
     
    "documentTypeDes": "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","emsfnd2"). 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 Gerenciamento dos campos pessoais e/ou sensíveis e que estejam relacionados aos programas do Datasul por meio da funcionalidade 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 programas.

    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

    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
    collapse
    true
    [
    
       {
            "
    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"
    ,
    
        
    "classifiers": [{
    }
    ]
    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
    [
       {
            
    "id
    "ErrorSequence": 1,
    
            
    "
    defaultRelation
    ErrorNumber": 
    true
    57240,
            
    "justificative
    "ErrorDescription": "
    Justificativa do
    Campo
    ",
     pessoal anonimizavel é do 
    tipo lógico",
            
    "description
    "ErrorParameters": "
    Execução de Contrato
    "
    } ] } ] }
    ,
    {
    
            "
    programCode
    ErrorType": "
    programa_teste2
    ERROR",
            "
    programName
    ErrorHelp": "
    Programa
    Campo 
    de teste2", "anonymizableFields": [{ "databaseName": "banco_teste2", "tabledName": "tabela_teste2",
    pessoal configurado como anonimizavel é do tipo lógico e não poderá ser anonimizado.",
            
    "
    fieldName
    ErrorSubType": "
    campo_teste2
    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
    [
       
    {
            "
    defaultRecord
    ErrorSequence": 
    true
    1,
    
            
    "
    sensitiveField
    ErrorNumber": 
    true
    57269,
            "ErrorDescription": "Campo pessoal anonimizavel é do tipo 
    blob"
    documentTypeId": 1
    ,
    
            
    "documentTypeDes
    "ErrorParameters": "
    CPF
    ",
    
            "
    classifiers
    ErrorType":
    [{
     "
    id
    ERROR"
    : 1
    ,
    
            
    "defaultRelation
    "ErrorHelp": 
    true,
    "Campo pessoal configurado como anonimizavel é do tipo blob e não poderá 
    "justificative": "Justificativa do Campo"
    ser anonimizado.",
            
    "description
    "ErrorSubType": "
    Execução de Contrato" } ] } ] Bloco de códigothemeRDark
    ERROR"
        }
    ]
    Exemplo de programa

    Retorno

    TipoDescriçãoLOGICALO 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 1094

    Este ERROR será lançado para os campos desativados em Gerenciamento dos campos pessoais e/ou sensíveis.

    Expandir
    title
    programa.pcollapsetrue
    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("programa_teste").
    jArrRequest:ADD("programa_teste2").
    
    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

    ...

    databaseName: Nome do banco de dados;

    ...

    tableName: Nome da tabela;

    ...

    fieldName: Nome do campo.

    ERROR 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
    [
       {
            "ErrorSequence": 1,
            "ErrorNumber": 
    1094
    57360,
            "ErrorDescription": "Campo pessoal anonimizavel é 
    está desativado(a)
    chave primária.",
            "ErrorParameters": "
    Campo pessoal
    ",
            "ErrorType": "ERROR",
            "ErrorHelp": "
    \n
    Campo pessoal configurado como anonimizavel é chave primária e não poderá ser anonimizado.",
            "ErrorSubType": "ERROR"
        }
    ]
    Exemplo de programa
    Bloco de código
    themeRDark
    titleprograma.p
    collapsetrue
    USING com.totvs.framework.sec.ProtectedData.
    DEFINE VARIABLE lReturn AS LOGICAL     NO-UNDO.
    DO ON ERROR UNDO, LEAVE:
        ASSIGN lReturn = ProtectedData:isFieldAnonymizable (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.

    ...