VP_DICTIONARY

Dicionário de Referência.

Explicação técnica, limitações e comportamento das funções do ecossistema SFMC abordadas na Base de Arquitetura.

// SQL Server (T-SQL)

ROW_NUMBER()

Window Function que atribui um número sequencial a cada linha de uma partição.

Regra: Obrigatório o uso em conjunto com a cláusula OVER().
Uso no SFMC: Primordialmente utilizado para deduplicação pesada selecionando `rn = 1`.

PARTITION BY

Cláusula obrigatória de Window Functions. Define sob qual critério/coluna a contagem do Row_Number deve zerar e reiniciar.

Exemplo: Se particionar por `EmailAddress`, cada email único na base receberá uma nova contagem iniciando em 1.

NTILE(x)

Distribui as linhas de uma partição em um número específico (x) de grupos matematicamente equivalentes.

Uso no SFMC: Padrão ouro para criar amostras estatísticas exatas (Ex: A/B Testing 50/50, bastando aplicar NTILE(2)).

NEWID()

Gera um identificador globalmente exclusivo (GUID) aletório.

Regra: Quando usado dentro da cláusula ORDER BY de uma Window Function, randomiza completamente a ordem de processamento das linhas.

// AMPscript

LookupRows()

Busca e retorna *múltiplas* linhas de uma Data Extension (diferente do `Lookup` simples). Retorna um objeto do tipo Rowset.

Aviso: Sempre exija validação com rowcount() > 0 antes de extrair os campos, caso contrário, se a chave não existir na DE externa, o e-mail falhará no disparo.

RaiseError()

Força uma exceção e aborta a compilação do e-mail/SMS.

Parâmetro Vital: RaiseError("Mensagem", true). O argumento `true` informa ao sistema para ignorar/pular *apenas* o assinante defeituoso, mas seguir disparando o resto do Job.

AttributeValue()

Lê e retorna o valor de um campo da sua base de envio atual.

Por que usar? Diferentemente de chamar a variável direto com `%%Nome%%`, o AttributeValue lida com valores *Null* ou ausentes sem quebrar o e-mail, tornando a arquitetura altamente defensiva.

BuildRowsetFromJson()

Pega um Payload JSON (como os injetados via API Event) e converte caminhos específicos de Array (ex: `$.Carrinho[*]`) em um formato Tabular (Rowset).

Isso permite interagir com complexidades de JSON diretamente no AMPscript com loops `FOR DO`, evitando o uso pesado de SSJS dentro de emails.

Concat()

Une duas ou mais strings e variáveis em um único bloco de texto.

Uso: Vital para montar URLs parametrizadas de forma limpa, garantindo que variáveis como `@Campanha` não quebrem a sintaxe do href no HTML.

RedirectTo()

A função mais crítica de Email Ops no SFMC.

Se você inserir uma URL diretamente no AMPscript (ex: `href="%%=v(@link)=%%"`), o SFMC **não vai rastrear** os cliques. OBRIGATORIAMENTE, links dinâmicos precisam usar href="%%=RedirectTo(@link)=%%" para que o servidor envolva a URL no wrapper de tracking.

// Server-Side JavaScript (SSJS)

Script.Util.HttpRequest()

Objeto robusto da biblioteca Core Script para requisições externas.

Vantagem: Substitui o legado `HTTP.Post()`. Permite injeção refinada de Content-Type, Headers de Autorização, controle de Timeout e retentativas nativas (req.retries = 2).

Stringify()

Converte um Objeto/Array SSJS para uma String em formato JSON puro.

Importante: Diferente de JavaScript front-end, prefira usar as funções da Platform (como `Stringify` e `ParseJSON`) para garantir compatibilidade segura com o motor Rhino do SFMC.