| Propriedade | Valor |
|---|---|
| ApiUrl | Fields |
| DefaultPropertyName | null |
| DisplayPropertyName | Name |
| EntityId | 77 |
| Icon | null |
| Importable | false |
| IsLoggedResponse | null |
| Propriedade | Tipo |
|---|---|
| Id | number |
| Key | string |
| Dynamic | boolean |
| Name | string |
| EntityId | number |
| FilterId | number |
| SecondaryEntityId | number |
| TypeId | number |
| OptionsTableId | number |
| Multiple | boolean |
| Required | boolean |
| Unique | boolean |
| Disabled | boolean |
| FormHidden | boolean |
| Hidden | boolean |
| InternalFormula | string |
| FieldHideFormula | string |
| FieldDisableFormula | string |
| ExternalFormulaUrl | string |
| ExternalFormulaMethod | string |
| ExternalFormulaHeaders | string |
| ExternalFormulaRequestBody | string |
| DefaultStringValue | string |
| DefaultBigStringValue | string |
| DefaultIntegerValue | number |
| DefaultDecimalValue | number |
| DefaultDateTimeValue | string |
| DefaultBoolValue | boolean |
| GoogleSheetsIntegrationId | number |
| OriginFieldKey | string |
| OriginFieldFieldPathId | number |
| ApiUrl | string |
| PropertyName | string |
| UpdatePropertyName | string |
| ValueEditable | boolean |
| OptionsCreationPermissionPropertyName | string |
| MustSkipManyToManyTable | boolean |
| InlineEditable | boolean |
| IsSensitiveData | boolean |
| ShowTime | boolean |
| Propriedade | Tipo |
|---|---|
| Entity | Unique |
| ExternalFormulaMappedFields | Array |
| ExternalFormulaResponsePaths | Array |
| Filter | Unique |
| FormulaVariables | Array |
| OptionsTable | Unique |
| OriginFieldFieldPath | Unique |
| SecondaryEntity | Unique |
| Type | Unique |
Tipo: string
Texto valor padrão do campo.
Tipo: string
Texto multilinha valor padrão do campo.
Tipo: number
Número inteiro valor padrão do campo.
Tipo: number
Número decimal valor padrão do campo.
Tipo: string
String representando uma data como valor padrão do campo. Formato: "YYYY-MM-DDTHH:mm:ss"
Tipo: boolean
Booleano valor padrão do campo.
Tipo: boolean
Mostra se o campo tem edição bloqueada por padrão. Ex: false
Tipo:boolean
Indica se um campo é padrão ou dinâmico. Campos padrão são aqueles criados pelo sistema, campos dinâmicos são aqueles criados pelos usuários. Eles tem comportamentos diferentes em relação a como e onde guardam seus valores.
Tipo: string
Código JS, que deve retornar true ou false, que afetará a EDIÇÃO do campo de acordo com outros campos do formulário. Ex: "(\"[Venda.DocNum]\"!==\"\")?false:true"
Tipo: string
Código JS, que deve retornar true ou false, que afetará a EXIBIÇÃO do campo de acordo com outros campos do formulário. Ex: "\"[Cliente.Área Ruminantes]\" == \"Sim\" ? false : true"
Tipo: boolean
Mostra se o campo tem exibição bloqueada por padrão. Ex: false
Tipo: Array de FormulaVariables
Array de campos cujo valor influenciam as fórmulas do campo.
Tipo: string
Código JS que diz afetará o VALOR do campo (exceção do campo de tipo 7) de acordo com outros campos do formulário. Ex: "[Total]*((100-[Discount])/100)"
Tipo: string
Chave única do campo no nosso BD. Não usamos ID como identificador único des campos, mas sim o Key. String. Ex: ‘quote_amount’
Tipo:boolean
Indica se um campo tem valor único ou é uma lista de valores. Valores de Campos múltiplos e únicos são guardados de maneira diferentes.
Tipo: string
O Label do campo que aparece para o usuário. Ex: ‘Valor’
Array de campos cujo valor influenciam as fórmulas do campo.
Campos padrão são campos fixos do Ploomes. O valor do Dynamic será false Eles tem Key padrão e iguais independentemente da conta do usuário. Exemplos de campos nativos são:
{ Key: 'contact_name', Dynamic: false }{ Key: 'deal_title', Dynamic: false }{ Key: 'quote_amount', Dynamic: false }| Dynamic | Multiple | Valor |
|---|---|---|
| false | false | Na raiz do objeto, com a chave sendo o UpdatePropertyName do campo - exemplos |
| false | true | Na raiz do objeto, com a chave sendo o PropertyName será uma lista. Dentro da lista devesse olhar para cada entrada bucando pelo UpdatePropertyNamedo campo - exemplos |
| true | false | No Array de OtherProperties que vem na raiz do objeto, buscar a entrada em que o FieldKey seja igual ao Key do campo - exemplos |
| true | true | No Array de OtherProperties que vem na raiz do objeto, buscar as múltiplas entradas em que o FieldKey seja igual ao Key do campo - exemplos |
Os valores dos campos nativos estão na raiz do objeto a ser editado. A chave onde o valor esta dependerá se o campo é multiplo ou não:
São campos em que a propriedade Muliple é false e a propriedade Dynamicé false.
Em campos não múltiplos e padrão o valor do campo estará na raiz do objeto com a chave UpdatePropertyName.
O camponame_field é como abaixo:
const name_field = {
"Key": "contact_name",
"Dynamic": false,
"UpdatePropertyName": "Name",
"Multiple": false
}
Caso o nosso objeto contact seja como abaixo
const contact = {
"Name": "John Doe"
}
O valor do campo name_field é dado por
contact[name_field.UpdatePropertyName] // 'John Doe'
// ou
contact.Name // 'John Doe'
Nesse caso com o valor será "John Doe".
O campo title_field de é como abaixo:
const title_field = {
"Key": "deal_title",
"UpdatePropertyName": "Title",
"Dynamic": false,
"Multiple": false
}
Dado um objeto deal como abaixo:
const deal = {
"Title": "Negócio bom demais",
"ContactId": 12345
"PipelineId": 129539
}
O valor do campo title_field é dado por
deal[title_field.UpdatePropertyName] // 'Negócio bom demais'
// ou
deal.Title // 'Negócio bom demais'
Nesse caso com o valor será "Negócio bom demais".
São campos em que a propriedade Muliple é true e a propriedade Dynamicé false.
Em campos múltiplos e padrão o valor será um Array e estará na raiz do objeto com a chave PropertyName. Dentro deste Array em cada entrada haverá um valor com a chave UpdatePropertyName do campo.
O campo tags_field de é como abaixo:
const tags_field = {
"Key": "deal_tags",
"PropertyName": "Tags"
"UpdatePropertyName": "TagId",
"Dynamic": false,
"Multiple": true,
}
Dado um objeto deal como abaixo:
const deal = {
"ContactId": 9602580,
"Tags": [
// Objetos relacionais de marcadores
{
"Id": 32244886,
"TagId": 95566, // Aqui esta um dos valores do campo
"NoteId": null,
"InteractionRecordId": null,
"TaskId": null,
"ContactId": null,
"DealId": 3693533,
"LeadId": null,
"EmailId": null
},
{
"Id": 32244887,
"TagId": 107660, // Aqui esta o outro valor do campo
"NoteId": null,
"InteractionRecordId": null,
"TaskId": null,
"ContactId": null,
"DealId": 3693533,
"LeadId": null,
"EmailId": null
}
]
}
Nesse caso, na chave Tags encontra-se uma lista de Objetos Relacionais de Marcadores. O valor do campo será os Marcadores de Id 95566 e 107660
O campo collab_users_field de é como abaixo:
const collab_users_field = {
"Key": "contact_collaborating_users",
"UpdatePropertyName": "UserId",
"Dynamic": false,
"Multiple": true,
"PropertyName": "CollaboratingUsers"
}
Dado um objeto company como abaixo:
const company = {
"Name": "Fulano de Tal",
"CollaboratingUsers": [
{
"Id": 2077413,
"ContactId": 10965717,
"UserId": 87133
},
{
"Id": 2077412,
"ContactId": 10965717,
"UserId": 88716
}
]
}
Nesse caso, na chave CollaboratingUsers encontra-se uma lista de Usuários Colaboradores. O valor do campo será os Usuários de Id 87133 e 88716
Os valores dos campos dinâmicos estão em uma lista (Array) na raiz do objeto com a chave OtherProperties.
São campos cuja propriedade Dynamic é true e Multiple é false
Dentro do Array de OtherProperties só será encontrado uma entrada cujo FieldKey seja igual ao Key do campo.
Imagine um campo BK99 onde o deve-se inserir o personagem predileto de Brooklin 99 do cliente cadastrado:
const bk99_field = {
"Name": "BK99",
"Key": "contact_E8BE6DCA-EBDB-47CD-9C99-37DB07B14CDF",
"TypeId": 1
"Dynamic": true,
"Multiple": false,
"PropertyName": null,
"UpdatePropertyName": null,
}
Dado um contato:
{
"Name": "Fulano de Tal",
"OtherProperties": [
{
"Id": 108726997,
"FieldId": 123069,
"FieldKey": "contact_E8BE6DCA-EBDB-47CD-9C99-37DB07B14CDF",
"ContactId": 10965717,
"StringValue": "Jake Peralta",
"BigStringValue": null,
"IntegerValue": null,
"DecimalValue": null,
"DateTimeValue": null,
"BoolValue": null,
},
{
"Id": 108726099,
"FieldId": 168173,
"FieldKey": "contact_75F09C6D-7695-463A-9FCA-EF8FEC93C2BD",
"ContactId": 10965717,
"StringValue": null,
"BigStringValue": null,
"IntegerValue": null,
"DecimalValue": null,
"DateTimeValue": null,
"BoolValue": true,
},
{
"Id": 108726095,
"FieldId": 168181,
"FieldKey": "contact_16545ADE-3F2F-4FEB-A7A5-24B134FE2719",
"ContactId": 10965717,
"StringValue": null,
"BigStringValue": null,
"IntegerValue": null,
"DecimalValue": 1.99,
"DateTimeValue": null,
"BoolValue": null,
}
]
}
Para acharmos o valor do campo bk99_field buscamos no array de OtherProperties a entrada com o FieldKey igual ao bk99_field.Key
const valueObject = contact.OtherProperties.find((o) => {
return o.FieldKey === bk99_field.Key
})
Temos então o seguinte objeto valueObject:
//valueObject
{
"Id": 108726997,
"FieldId": 123069,
"FieldKey": "contact_E8BE6DCA-EBDB-47CD-9C99-37DB07B14CDF",
"ContactId": 10965717,
"StringValue": "Jake Peralta",
"BigStringValue": null,
"IntegerValue": null,
"DecimalValue": null,
"DateTimeValue": null,
"BoolValue": null,
}
Como podemos observar, o TypeId do campo bk99_fieldé 1, isso indica que o campo é do Tipo “Texto Simples”. Sabendo o tipo de campo, olhamos para o NativeType do tipo do campo, que no caso é String. Para ver os diferentes NativeTypes para todos os tipos de campo, entre neste artigo sobre Tipos Estáticos.
Concatenando o NativeTypedo campo com o sufixo Value, chegamos a chave para busca do valor dentro do valueObject.
// NativeType campos de TypeId === 1
const nativeType = 'String';
const valueSufix = 'Value';
const valueKey = 'StringValue';
Logo, a chave onde estará o valor para esse tipo de campo é StringValue
Voltando ao valueObject
//valueObject
const valueObject = {
"Id": 108726997,
"FieldId": 123069,
"FieldKey": "contact_E8BE6DCA-EBDB-47CD-9C99-37DB07B14CDF",
"ContactId": 10965717,
"StringValue": "Jake Peralta",
"BigStringValue": null,
"IntegerValue": null,
"DecimalValue": null,
"DateTimeValue": null,
"BoolValue": null,
};
const value = valueObject["StringValue"];
Chegamos que o valor do campo é 'Jake Peralta'
Os valores de campos dinâmicos múltiplos ficam guardados no array de OtherProperties assim como os campos únicos. A única diferença é que estes campos aceitam mais de uma entrada com o mesmo FieldKey no array.
No caso acima, fosse o campo bk99_field múltiplo, o valor do campo seria o array com os valores, no caso ['Jake Peralta']
Alguns comportamentos dos campos nativos são: