Á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

O valor de entrada é um objeto do tipo JsonArray

Tipo

Descrição

JsonArray
CHARACTER

databaseName: Nome do banco de dados

, configurado na funcionalidade Gerenciamento dos campos pessoais e/ou sensíveis. Bloco de código
themeRDark
collapsetrue
[ { "databaseName":"emsfnd" }, { "databaseName":"emsfnd2" } ]

;

CHARACTER

tableName: Nome da tabela.

CHARACTER

fieldName: Nome do campo;


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": "Campo 
    true
    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

    Responsável por retornar os campos ativos e passíveis de anonimização, filtrados por uma lista de bancos e tabelas. 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.

    Parâmetros de entrada

    Tipo

    Descrição

    JsonArrayO valor de entrada é um objeto do tipo JsonArraydatabaseName: Nome do banco de dados e tableName: Nome da tabela, configurados na funcionalidade 
     "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 

    collapsetrue
    [
    
    
       {
    
            "
    databaseName
    ErrorSequence":
    "emsfnd" }
     1,
    
    {
      
          
    "
    databaseName
    ErrorNumber":
    "emsfnd2" } ]

    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",
     1094,
            "
    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 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.

    Parâmetros de entrada

    ...

    Tipo

    ...

    Descrição

    ...

    Formato JSON Array, contendo códigos dos programas.

    Bloco de código
    themeRDark
    collapsetrue
    ["routine_01","routine_02"]
    "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çãoJsonArrayFormato JSON Array, com os campos anonimizáveis agrupados pelos códigos dos programas

    .

    Bloco de código
    themeRDark
    collapsetrue
    [
    
       
    {
    
            "
    programCode
    ErrorSequence":
    "routine_01"
     1,
            "
    programName
    ErrorNumber":
    "Routine
     
    01"
    56893,
            "
    personalFields
    ErrorDescription":
    [
     "Campo 
    pessoal anonimizavel faz parte de um 
    {
    índice único",
            
    "idNumber":0
    "ErrorParameters": "",
            
    "databaseName
    "ErrorType": "
    database_a
    ERROR",
    
            "
    tableName
    ErrorHelp": "
    usuar_mestre", "fieldName":"string"
    Campo pessoal configurado como anonimizavel faz parte de um índice único e não poderá ser anonimizado.",
            
    "defaultRecord":false,
    "ErrorSubType": "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
    [
       
    {
            "
    sensitiveField
    ErrorSequence":
    false
     1,
    
            
    "documentTypeId
    "ErrorNumber":
    0
     57240,
            "ErrorDescription": "Campo pessoal anonimizavel é do tipo 
    lógico"
    fieldClassId":0
    ,
            
    "documentTypeDes
    "ErrorParameters": "
    string
    ",
    
            "
    fieldClassDes
    ErrorType": "
    string
    ERROR",
            "ErrorHelp": "Campo pessoal configurado como anonimizavel é 
    "anonymize":false,
    do tipo lógico e não poderá ser anonimizado.",
            "
    justification
    ErrorSubType": "
    string
    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
    [
       {
    
    
            
    "
    idNumber
    ErrorSequence":
    0
     1,
    
            
    "
    databaseName
    ErrorNumber": 
    "emsfnd"
    57269,
            
    "tableName
    "ErrorDescription": "
    usuar_mestre",
    Campo pessoal anonimizavel é do tipo blob",
            
    "
    fieldName
    ErrorParameters": "
    string
    ",
    
            
    "
    defaultRecord
    ErrorType":
    false,
     
    "
    sensitiveField
    ERROR"
    :false
    ,
    
            
    "
    documentTypeId
    ErrorHelp":
    0,
     "Campo pessoal configurado como anonimizavel é do tipo blob e não poderá 
    "fieldClassId":0,
    ser anonimizado.",
            
    "
    documentTypeDes
    ErrorSubType": "
    string
    ERROR"
    ,
    
        }
    ]
    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
    [
       
    {
            "
    fieldClassDes
    ErrorSequence":
    "string"
     1,
    
            
    "
    anonymize
    ErrorNumber":
    false
     57360,
    
            
    "
    justification
    ErrorDescription": "
    string"
    Campo pessoal anonimizavel é 
    }
    chave primária.",
            
    ] } ]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",
        "tableName":"tabela1",
        "fieldName":"campo1",
        "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'.
    "ErrorParameters": "",
            "ErrorType": "ERROR",
            "ErrorHelp": "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 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>