CONTEÚDO

01. Visão geral
Disponibilização de métodos para consultar campos ativos e passíveis de anonimização configurados em Gerenciamento dos campos pessoais e/ou sensíveis.
02. Formatos de anonimização
Para cada tipo de dado de campo protegido, será fornecido um valor padrão de anonimização:
- Para o tipo de dado Texto/caractere, será retornado o valor "X"
- Para o tipo de dado Numérico, será retornado o valor 0
- Para o tipo de dado Data, será retornado a data 01/01/1753, data minima compatível para os bancos dados: Progress, Oracle e SQL Server.
|
---|
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.
Parâmetros de entrada
Tipo | Descrição |
---|
JsonArray | O valor de entrada é um objeto do tipo JsonArray [
{
"databaseName":"emsfnd"
},
{
"databaseName":"emsfnd2"
}
] |
databaseName: Nome do banco de dados.
|
Retorno
Tipo | Descrição |
---|
JsonArray | - 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.
[
{
"databaseName": "emsfnd",
"anonymizableFields": [
{
"tableName": "tabela_teste",
"fieldName": "campo_teste",
"defaultRecord": true,
"sensitiveField": true,
"documentTypeId": 1,
"documentTypeDes": "CPF",
"classifiers": [
{
"id": 1,
"defaultRelation": true,
"justificative": "Justificativa do Campo",
"description": "Execução de Contrato"
}
]
}
]
},
{
"databaseName": "emsfnd2",
"anonymizableFields": []
}
] |
|
Exemplo de programa |
---|
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 |
---|
JsonArray | O valor de entrada é um objeto do tipo JsonArray [
{
"databaseName":"emsfnd"
},
{
"databaseName":"emsfnd2"
}
] |
databaseName: Nome do banco de dados. tableName: Nome da tabela. |
Retorno
Tipo | Descrição |
---|
JsonArray | - 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.
[
{
"databaseName": "emsfnd",
"tableName": "tabela_teste",
"anonymizableFields": [
{
"fieldName": "campo_teste",
"defaultRecord": true,
"sensitiveField": true,
"documentTypeId": 1,
"documentTypeDes": "CPF",
"classifiers": [
{
"id": 1,
"defaultRelation": true,
"justificative": "Justificativa do Campo",
"description": "Execução de Contrato"
}
]
}
]
},
{
"databaseName": "emsfnd2",
"tableName": "tabela_teste",
"anonymizableFields": []
}
] |
|
Exemplo de programa |
---|
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 e mapeados 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 |
---|
JsonArray | O valor de entrada é um objeto do tipo JsonArray, contendo códigos do progrmas. ["programa_teste","programa_teste2"] |
|
Retorno
Tipo | Descrição |
---|
JsonArray | - 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.
[
{
"programCode": "programa_teste",
"programName": "Programa de teste",
"anonymizableFields": [{
"databaseName": "banco_teste",
"tabledName": "tabela_teste",
"fieldName": "campo_teste",
"defaultRecord": true,
"sensitiveField": true,
"documentTypeId": 1,
"documentTypeDes": "CPF",
"classifiers": [{
"id": 1,
"defaultRelation": true,
"justificative": "Justificativa do Campo",
"description": "Execução de Contrato"
}
]
}
]
},
{
"programCode": "programa_teste2",
"programName": "Programa de teste2",
"anonymizableFields": [{
"databaseName": "banco_teste2",
"tabledName": "tabela_teste2",
"fieldName": "campo_teste2",
"defaultRecord": true,
"sensitiveField": true,
"documentTypeId": 1,
"documentTypeDes": "CPF",
"classifiers": [{
"id": 1,
"defaultRelation": true,
"justificative": "Justificativa do Campo",
"description": "Execução de Contrato"
}
]
}
]
}
] |
|
Exemplo de programa |
---|
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 |
---|
JsonObject | Formato JSON Object, com os atributos: - databaseName: Nome do banco de dados;
- tableName: Nome da tabela;
- fieldName: Nome do campo.
{
"databaseName":"db1",
"tableName":"tabela1",
"fieldName":"campo1"
} |
|
Retorno
Tipo | Descrição |
---|
JsonObject | {
"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'.
|
Exemplo de programa |
---|
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. |
|
<!-- 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>
|