Tabela CUFD no SAP Business One (Campos definidos pelo usuário (descrições))

CUFD é a tabela do SAP Business One que descreve cada campo definido pelo usuário (UDF): uma linha por tabela e campo, com o nome do campo (AliasID), descrição, tipo, tamanho, valor padrão, indicador de obrigatório e a tabela vinculada. O UDF em si é uma coluna chamada U_ mais o AliasID na tabela indicada por TableID; os valores válidos ficam na UFD1.

Campos-chave da CUFD

CampoO que contém
TableIDTabela à qual o campo pertence, por exemplo OINV.
FieldIDNúmero do campo dentro da tabela. Junto com TableID identifica o campo.
AliasIDNome do campo (título). A coluna no banco de dados é U_ mais este nome.
DescrDescrição do campo.
TypeIDTipo de campo.
EditTypeTipo de edição (subtipo).
SizeID / EditSizeTamanho e tamanho de edição.
DfltValor padrão.
NotNullY = campo de preenchimento obrigatório.
IndexIDY = criar índice.
RTableTabela vinculada. Relaciona com OUTB.TableName.
RelUDO / RelSOObjeto definido pelo usuário relacionado e objeto do sistema relacionado.

Como a CUFD se relaciona com outras tabelas

A CUFD é a camada de definição dos UDFs. A UFD1 guarda os valores válidos de um campo, relacionados por TableID e FieldID. RTable aponta para uma tabela definida pelo usuário na OUTB quando o campo está vinculado a uma. Os valores que os usuários digitam não ficam na CUFD: ficam nas colunas U_ da própria tabela de negócio.

Joins mais comuns

  • CUFD T0 LEFT JOIN UFD1 T1 ON T1.TableID = T0.TableID AND T1.FieldID = T0.FieldID (valores válidos)
  • CUFD T0 LEFT JOIN OUTB T2 ON T2.TableName = T0.RTable (tabela definida pelo usuário vinculada)

Quando usar a tabela CUFD

Use a CUFD para documentar todos os UDFs de uma empresa antes de um upgrade ou migração, encontrar campos obrigatórios que bloqueiam lançamentos pela DI API ou pelo Service Layer e comparar os UDFs entre uma base de teste e a de produção.

Consulta de exemplo: todos os UDFs do cabeçalho da nota fiscal de saída com seus valores válidos

SQL Server

SELECT T0.TableID, T0.FieldID, 'U_' + T0.AliasID AS ColumnName, T0.Descr, T0.TypeID,
  T0.SizeID, T0.NotNull, T0.Dflt, T1.FldValue, T1.Descr AS ValueDescr
FROM CUFD T0
LEFT JOIN UFD1 T1 ON T1.TableID = T0.TableID AND T1.FieldID = T0.FieldID
WHERE T0.TableID = 'OINV'
ORDER BY T0.FieldID, T1.IndexID

SAP HANA (nomes de colunas entre aspas duplas)

SELECT T0."TableID", T0."FieldID", 'U_' || T0."AliasID" AS "ColumnName", T0."Descr", T0."TypeID",
  T0."SizeID", T0."NotNull", T0."Dflt", T1."FldValue", T1."Descr" AS "ValueDescr"
FROM CUFD T0
LEFT JOIN UFD1 T1 ON T1."TableID" = T0."TableID" AND T1."FieldID" = T0."FieldID"
WHERE T0."TableID" = 'OINV'
ORDER BY T0."FieldID", T1."IndexID"

Cole qualquer uma das duas versões em Ferramentas → Consultas → Gerador de consultas. Precisa do outro dialeto para a sua própria consulta? Use o conversor de SQL para HANA.

Erro comum: Consultar o AliasID sem o prefixo U_

CUFD.AliasID guarda o nome sem o prefixo, mas a coluna na tabela de negócio é U_ mais esse nome. Uma consulta que seleciona o AliasID como está falha com erro de coluna inválida. Relacione também a UFD1 por TableID e FieldID juntos; o FieldID sozinho se repete em cada tabela. Veja Tabela UFD1 (valores válidos de UDF).

Perguntas sobre a tabela CUFD

Onde são definidos os campos de usuário no SAP Business One?

Na CUFD, uma linha por tabela (TableID) e campo (FieldID). Os valores válidos ficam na UFD1.

Qual é o nome da coluna de um UDF?

U_ seguido de CUFD.AliasID, na tabela indicada em CUFD.TableID.

Como encontro os UDFs obrigatórios?

Filtre CUFD.NotNull = 'Y'.

Tabelas relacionadas

UFD1 (Campos definidos pelo usuário (valores válidos)) · OUTB (Tabelas definidas pelo usuário) · pesquisar todas as tabelas do SAP Business One

Fontes: Documentação e SDK do SAP Business One (referência das tabelas do banco de dados da DI API), SAP Help Portal.

Pronto para começar?

Diga do que você precisa. Você recebe uma resposta técnica clara, um escopo fechado e um preço, normalmente em até 24 horas.