...
|
---|
Bloco de código |
---|
theme | RDark |
---|
title | exemploprograma.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 |
---|
JsonArray | O valor de entrada é um objeto do tipo JsonArraydatabaseName: Nome do banco de dados, configurado na funcionalidade Tipo | Descrição |
---|
LOGICAL | 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 |
---|
| Será lançado ao informar parâmetros de entrada de um campo não configurado em |
|
collapse | true databaseName"emsfnd"
},
"ErrorDescription": "Campo |
|
|
{pessoal não cadastrado(a)",
" |
|
|
databaseNameemsfnd2}
]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.
Bloco de código |
---|
|
[
{
"ErrorType": "ERROR",
"ErrorHelp": "Campo pessoal não cadastrado(a).",
" |
|
|
databaseNameemsfnd,"anonymizableFields": [
{ Expandir |
---|
| Será lançado ao informar parâmetros de entrada de um campo inexistente no banco de dados. |
|
tableName"tabela_teste"fieldName"campo_teste"defaultRecord truesensitiveFieldtrue,
"documentTypeId": 1documentTypeDesCPFclassifiers[
se existe uma ocorrência para o(a) Campo informado(a) em seu |
|
|
{
id1, defaultRelationtrue justificativeJustificativado Campo descriptionExecuçãode Contratopessoal",
"ErrorType": "ERROR",
|
|
|
}
]} "ErrorSubType": "ERROR"
}
] |
|
Expandir |
---|
| Será lançado ao informar parâmetros de entrada nulos ou vazios. |
|
},{
databaseName"emsfnd2"anonymizableFields[]}
]Exemplo de programa |
---|
Bloco de código |
---|
theme | RDark |
---|
title | exemplo.p |
---|
collapse | true |
---|
|
USINGProgress.Json.ObjectModel.*.
USINGcom.totvs.framework.sec.ProtectedData.
DEFINEVARIABLEjObjRequestAS 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 |
---|
| 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 |
---|
| [
{
"ErrorSequence": 1,
|
|
|
Tipo | Descrição |
---|
JsonArray | Formato JSON Array.
Bloco de código |
---|
|
[
{
databaseName"db1"tableNametabela1"
Campo pessoal anonimizavel faz |
|
|
},
{ databaseNamedb2tableNametabela2}
]- databaseName: Nome do banco de dados
- tableName: Nome da tabela
Retorno
Tipo | Descrição |
---|
JsonArray | Formato JSON Array, com os campos anonimizáveis agrupados por banco e tabela.
Bloco de código |
---|
|
[
{
"databaseName":"db1" "ErrorHelp": "Campo pessoal configurado como anonimizavel faz parte de um índice único e não poderá ser anonimizado.",
" |
|
|
tableName"tabela1",
anonymizableFields:[ {
Expandir |
---|
| Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que é do tipo lógico. |
|
idNumber0 1,
"ErrorNumber": 57240,
" |
|
|
databaseNameemsfnd",
Campo pessoal anonimizavel é do |
|
|
tableNameusuar_mestre "fieldNamestring defaultRecordfalse,
"Campo pessoal configurado como anonimizavel é do tipo lógico e não poderá ser |
|
|
"sensitiveField":false "documentTypeId":0,"ErrorSubType": "ERROR"
}
] |
|
Expandir |
---|
| Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que é do tipo blob. |
|
fieldClassId0 documentTypeDes"string" fieldClassDesstring",
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 |
---|
theme | RDark |
---|
title | programa_de_negocio.p |
---|
collapse | true |
---|
| 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 |
---|
|
["routine_01","routine_02"] |
Retorno
...
Formato JSON Array, com os campos anonimizáveis agrupados pelos códigos dos programas.
Bloco de código |
---|
|
[
{
"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 |
---|
theme | RDark |
---|
title | programa_de_negocio.p |
---|
collapse | true |
---|
|
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 |
---|
| Será lançado ao informar parâmetros de entrada de um campo pessoal anonimizável que é chave primária. Bloco de código |
---|
| [
{
"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 |
---|
theme | RDark |
---|
title | programa.p |
---|
collapse | true |
---|
| 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 |
---|
|
{
"databaseName":"db1",
"tableName":"tabela1",
"fieldName":"campo1"
} |
Retorno
Tipo | Descrição |
---|
JsonObject | Bloco de código |
---|
| {
"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 |
---|
theme | RDark |
---|
title | programa_de_negocio.p |
---|
collapse | true |
---|
|
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>
|