Á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 consistência de banco de dados. Para verificação do campo com validações de consistência no banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

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

CHARACTER

databaseName: Nome do banco de dados;

CHARACTER

tableName: Nome da tabela.

CHARACTER

fieldName: Nome do campo;


Retorno

Tipo

Descrição

JsonArrayO valor de entrada é um objeto do tipo JsonArraydatabaseName: Nome do banco de dados, configurado na funcionalidade 
TipoDescrição
LOGICALO 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 

collapsetrue
[

   
{

        "
databaseName
ErrorSequence":
"emsfnd"
 1,
        "ErrorNumber": 47,
      
},
  "ErrorDescription": "Campo 
{
pessoal não cadastrado(a)",
        "
databaseName
ErrorParameters": "
emsfnd2
Campo pessoal",
        
} ]

Retorno

TipoDescriçãoJsonArray
  • Formato de retorno é do tipo JsonArray.
  • O agrupamento dos registros será por banco.
  • Caso não exista registro para o banco informado será retornado o objeto anonymizableFields sem registros.
Bloco de código
themeRDark
collapsetrue
[ {
"ErrorType": "ERROR",
        "ErrorHelp": "Campo pessoal não cadastrado(a).",
        "
databaseName
ErrorSubType": "
emsfnd
ERROR"
,

    
"anonymizableFields": [ {
}
]
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
[
   {
        "
tableName
ErrorSequence": 
"tabela_teste"
1,
        "
fieldName
ErrorNumber": 
"campo_teste"
56,
        "
defaultRecord
ErrorDescription":
true
 "Campo inexistente.",
        "
sensitiveField
ErrorParameters": 
true, "documentTypeId": 1
"Campo",
        "
documentTypeDes
ErrorType": "
CPF
ERROR",
        "
classifiers
ErrorHelp": "Verifique 
[
se existe uma ocorrência para o(a) Campo informado(a) em seu 
{
cadastro.",
        "
id
ErrorSubType": 
1,
"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.

Bloco de código
themeRDark
[
   {
        
"
defaultRelation
ErrorSequence": 
true
1,
        
"ErrorNumber": 1094,
        "
justificative
ErrorDescription": "
Justificativa
Campo pessoal 
do Campo
está desativado(a).",
        
"
description
ErrorParameters": "
Execução
Campo 
de Contrato
pessoal",
        "ErrorType": "ERROR",
 
}
       
]
"ErrorHelp": "",
      
}
  
"ErrorSubType": "ERROR"
    }
]
Expandir
titleERROR 56891

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

Bloco de código
themeRDark
[
  
},
 {
  
{
      "
databaseName
ErrorSequence": 
"emsfnd2"
1,
        "
anonymizableFields
ErrorNumber": 
[]
56891,
  
} ]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 consistência de banco de dados. Para verificação do campo com validações de consistência no banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

"ErrorDescription": "Parâmetros incorretos.",
        "ErrorParameters": "",
        "ErrorType": "ERROR",
        "ErrorHelp": "",
        "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
[
   {
        "ErrorSequence": 1,

Tipo

Descrição

JsonArray

Formato JSON Array.

Bloco de código
themeRDark
collapsetrue
[ {
        "
databaseName
ErrorNumber":
"db1"
 56893,
        "
tableName
ErrorDescription": "
tabela1"
Campo pessoal anonimizavel faz 
},
parte de um 
{
índice único",
        "
databaseName
ErrorParameters": "
db2
",
        "
tableName
ErrorType": "
tabela2
ERROR",
     
} ]
  • databaseName: Nome do banco de dados
  • tableName: Nome da tabela

Retorno

TipoDescriçãoJsonArray

Formato JSON Array, com os campos anonimizáveis agrupados por banco e tabela.

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

A função não realiza consistência de banco de dados, são retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis.

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","usuar_mestre").
jArrRequest:ADD(jObjRequest).

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd").
jObjRequest:ADD("tableName","video").
jArrRequest:ADD(jObjRequest).

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd").
jObjRequest:ADD("tableName","imagens").
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 consistência de banco de dados. Para verificação do campo com validações de consistência no 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"]

Retorno

...

Formato JSON Array, com os campos anonimizáveis agrupados pelos códigos dos programas.

Bloco de código
themeRDark
collapsetrue
[  
    {  
        "programCode":"routine_01",
        "programName":"Routine 01",
        "personalFields":[  
            {  
                "idNumber":0,
                "databaseName": "database_a",
                "tableName": "usuar_mestre",
                "fieldName":"string",
                "defaultRecord":false,
                "sensitiveField":false,
                "documentTypeId":0,
                "fieldClassId":0,
                "documentTypeDes":"string",
                "fieldClassDes":"string",
                "anonymize":false,
                "justification":"string"
            },
            {  
                "idNumber":0,
                "databaseName": "emsfnd",
                "tableName": "usuar_mestre",
                "fieldName":"string",
                "defaultRecord":false,
                "sensitiveField":false,
                "documentTypeId":0,
                "fieldClassId":0,
                "documentTypeDes":"string",
                "fieldClassDes":"string",
                "anonymize":false,
                "justification":"string"
            }
        ]
    }
]

A função não realiza consistência de banco de dados, são retornados os registros configurados em Relacionamento das rotinas com campos pessoais e/ou sensíveis.

...

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).
tipo blob",
        "ErrorParameters": "",
        "ErrorType": "ERROR",
        "ErrorHelp": "Campo pessoal configurado como anonimizavel é do tipo blob e não poderá ser anonimizado.",
        "ErrorSubType": "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
[
   {
        "ErrorSequence": 1,
        "ErrorNumber": 57360,
        "ErrorDescription": "Campo pessoal anonimizavel é chave primária.",
        "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 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 

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'
  • Não será feita validação para verificar se o campo existe no metaschema do banco de dados.
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 jObjResponse AS JsonObject 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 = 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())
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>