PloomesDocs

Fields

Resumo

Propriedade Valor
ApiUrl Fields
DefaultPropertyName null
DisplayPropertyName Name
EntityId 77
Icon null
Importable false
IsLoggedResponse null

Tipo

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

Relacionamentos

Propriedade Tipo
Entity Unique
ExternalFormulaMappedFields Array
ExternalFormulaResponsePaths Array
Filter Unique
FormulaVariables Array
OptionsTable Unique
OriginFieldFieldPath Unique
SecondaryEntity Unique
Type Unique

Propriedades

DefaultStringValue

Tipo: string

Texto valor padrão do campo.

DefaultBigStringValue

Tipo: string

Texto multilinha valor padrão do campo.

DefaultIntegerValue

Tipo: number

Número inteiro valor padrão do campo.

DefaultDecimalValue

Tipo: number

Número decimal valor padrão do campo.

DefaultDateTimeValue

Tipo: string

String representando uma data como valor padrão do campo. Formato: "YYYY-MM-DDTHH:mm:ss"

DefaultBoolValue

Tipo: boolean

Booleano valor padrão do campo.

Disabled

Tipo: boolean

Mostra se o campo tem edição bloqueada por padrão. Ex: false

Dynamic

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.

FieldDisableFormula

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"

FieldHideFormula

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"

FormHidden

Tipo: boolean

Mostra se o campo tem exibição bloqueada por padrão. Ex: false

FormulaVariables

Tipo: Array de FormulaVariables

Array de campos cujo valor influenciam as fórmulas do campo.

InternalFormula

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)"

Key

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’

Multiple

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.

Name

Tipo: string O Label do campo que aparece para o usuário. Ex: ‘Valor’

Campos Padrão

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:

Valores de campos.

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

Valores de campos padrão.

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:

Campos padrão e únicos

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.

Nome de um contato.

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

Título de um Negócio

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

Campos padrão e múltiplos

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.

Marcadores de um negócio

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

Usuários Colaboradores de uma empresa

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

Valores de Campos Dinâmicos

Os valores dos campos dinâmicos estão em uma lista (Array) na raiz do objeto com a chave OtherProperties.

Campos Dinâmicos e Únicos

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,
}
Buscando valores em OtherProperties

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'

Campos Dinâmicos e Múltiplos

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']

Comportamentos específicos de campos nativos.

Alguns comportamentos dos campos nativos são: