Trabalhar com pacotes de dados data-packages
Introdução a pacotes gs-data-packages
Você pode usar pacotes de dados para exportar e importar dados e configurações personalizadas da plataforma. Os pacotes podem conter diferentes tipos de configurações e componentes, filtrados ou não.
Em pacotes de dados do Campaign, as entidades do banco de dados do Adobe Campaign podem ser exibidas em arquivos XML. Em um pacote, cada entidade é representada com todos os seus dados.
O princípio de pacotes de dados é exportar uma configuração de dados e integrá-la a outro ambiente do Adobe Campaign. Saiba como manter um conjunto consistente de pacotes de dados nesta seção.
Tipos de pacotes types-of-packages
Você pode trabalhar com três tipos de pacotes no Adobe Campaign: pacotes de usuário, pacotes de plataforma e pacotes de administrador.
- Um pacote de usuário permite que você selecione a lista de entidades a serem exportadas. Esse tipo de pacote gerencia dependências e verifica erros.
- Um pacote de plataforma inclui todos os recursos técnicos adicionados (não padrão): esquemas, código JavaScript, etc.
- Um pacote de administração inclui todos os modelos e objetos comerciais adicionados (não padrão): modelos, bibliotecas, etc.
Estrutura de dados data-structure
A descrição de um pacote de dados é um documento XML estruturado que está de acordo com a gramática do esquema de dados xrk:navtree, como no exemplo abaixo:
<package>
<entities schema="nms:recipient">
<recipient email="john.smith@adobe.com" lastName="Smith" firstName="John">
<folder _operation="none" name="nmsRootFolder"/>
<company _operation="none" name="Adobe"/>
</recipient>
</entities>
<entities schema="sfa:company">
<company name="Adobe">
<location city="London" zipCode="W11 2BQ"/>
</company>
</entities>
</package>
O documento XML deve começar e terminar com o elemento <package>
. Quaisquer elementos <entities>
seguintes distribuem os dados por tipo de documento. Um elemento <entities>
contém os dados do pacote no formato do esquema de dados inserido no atributo schema. Os dados em um pacote não devem conter chaves internas incompatíveis entre as bases, como chaves geradas automaticamente (opção autopk).
Em nosso exemplo, as associações nos links folder
e company
foram substituídas por teclas de "alto nível" nas tabelas de destino:
<recipient>
<folder _operation="none" name="nmsRootFolder"/>
<company _operation="none" name="Adobe"/>
</recipient>
O atributo operation
com o valor none
define um link de reconciliação.
Um pacote de dados pode ser criado manualmente a partir de qualquer editor de texto. Você deve garantir que a estrutura do documento XML esteja em conformidade com o esquema de dados xtk:navtree
. O console do cliente tem um módulo de exportação e importação de pacote de dados.
Exportar pacotes export-packages
Os pacotes podem ser exportados de três formas diferentes:
- Use o assistente Package Export para exportar um conjunto de objetos em um único pacote. Saiba mais
- Para exportar um único objeto, clique com o botão direito do mouse nele e selecione Actions > Export in a package.
- Use as Definições de pacote para criar uma estrutura de pacote na qual você adiciona objetos a serem exportados posteriormente em um pacote. Saiba mais
Depois que um pacote é exportado, você pode importá-lo e todas as entidades adicionadas para outra instância do Campaign.
Exportar um conjunto de dados em um pacote export-a-set-of-objects-in-a-package
Para exportar um conjunto de objetos em um pacote de dados, siga estas etapas:
-
Navegue até o assistente de exportação de pacotes por meio do menu Tools > Advanced > Export package… do explorador.
-
Selecione os tipos de pacotes.
-
Clique no botão Adicionar para selecionar as entidades a serem exportadas como um pacote.
note caution CAUTION Se exportar um tipo de pasta Offer category, Offer environment, Program ou Plan, nunca selecione a xtk:folder, já que alguns dados podem ser perdidos. Selecione a entidade que corresponde à pasta: nms:offerCategory para categorias de ofertas, nms:offerEnv para ambientes de ofertas, nms:program para programas e nms:plan para planos. O mecanismo de dependência controla a sequência de exportação da entidade. Para obter mais informações, consulte Gerenciamento de dependências.
-
Clique em Next e defina a consulta de filtro no tipo de documento a ser extraído. Você deve configurar a cláusula de filtragem para extração de dados.
note note NOTE O editor de query é apresentado nesta seção. -
Clique em Next e selecione a ordem de classificação dos dados exportados.
-
Visualize os dados a serem extraídos para verificar sua configuração.
-
A última página do assistente de exportação de pacotes permite iniciar a exportação. Os dados serão armazenados no arquivo indicado no campo File.
Gerenciar dependências manage-dependencies
O processo de exportação rastreia os links entre os vários elementos exportados. Esse mecanismo é definido por duas regras:
- objetos vinculados a um link com uma integridade do tipo
own
ouowncopy
são exportados no mesmo pacote que o objeto exportado. - objetos vinculados a um link com uma integridade de tipo
neutral
oudefine
(link definido) devem ser exportados separadamente.
Exportar uma campanha export-a-campaign
Veja abaixo um exemplo de como exportar uma campanha. A campanha de marketing a ser exportada contém:
- uma tarefa
MyTask
- um fluxo de trabalho
campaignWorkflow
na seguinte pasta: Administration > Production > Technical workflows > Campaign processes > MyWorkflow.
A tarefa e o fluxo de trabalho são exportados no mesmo pacote que a campanha desde que os esquemas correspondentes sejam conectados por links com uma integridade do tipo own
.
O conteúdo do pacote é:
<?xml version='1.0'?>
<package author="Administrator (admin)" buildNumber="7974" buildVersion="7.1" img=""
label="" name="" namespace="" vendor="">
<desc></desc>
<version buildDate="2013-01-09 10:30:18.954Z"/>
<entities schema="nms:operation">
<operation duration="432000" end="2013-01-14" internalName="OP1" label="MyCampaign"
modelName="opEmpty" start="2013-01-09">
<controlGroup>
<where filteringSchema=""/>
</controlGroup>
<seedList>
<where filteringSchema="nms:seedMember"></where>
<seedMember internalName="SDM1"></seedMember>
</seedList>
<parameter useAsset="1" useBudget="1" useControlGroup="1" useDeliveryOutline="1"
useDocument="1" useFCPValidation="0" useSeedMember="1" useTask="1"
useValidation="1" useWorkflow="1"></parameter>
<fcpSeed>
<where filteringSchema="nms:seedMember"></where>
</fcpSeed>
<owner _operation="none" name="admin" type="0"/>
<program _operation="none" name="nmsOperations"/>
<task end="2013-01-17 10:07:51.000Z" label="MyTask" name="TSK2" start="2013-01-16 10:07:51.000Z"
status="1">
<owner _operation="none" name="admin" type="0"/>
<operation _operation="none" internalName="OP1"/>
<folder _operation="none" name="nmsTask"/>
</task>
<workflow internalName="WKF12" label="CampaignWorkflow" modelName="newOpEmpty"
order="8982" scenario-cs="Notification of the workflow supervisor (notifySupervisor)"
schema="nms:recipient">
<scenario internalName="notifySupervisor"/>
<desc></desc>
<folder _operation="none" name="Folder4"/>
<operation _operation="none" internalName="OP1"/>
</workflow>
</operation>
</entities>
</package>
A afiliação a um tipo de pacote é definida em um esquema com o atributo @pkgAdmin and @pkgPlatform
. Esses atributos recebem uma expressão XTK que define as condições de afiliação ao pacote.
<element name="offerEnv" img="nms:offerEnv.png"
template="xtk:folder" pkgAdmin="@id != 0">
Finalmente, o atributo @pkgStatus
permite definir as regras de exportação para esses elementos ou atributos. Dependendo do valor do atributo, o elemento ou atributo será encontrado no pacote exportado. Os três valores possíveis para este atributo são:
never
: não exporta o campo/linkalways
: força a exportação deste campopreCreate
: autoriza a criação da entidade vinculada
preCreate
é apenas admitido para eventos do tipo link. Ele permite criar ou apontar para uma entidade que ainda não foi carregada no pacote exportado.Gerenciar definições de pacote manage-package-definitions
As definições de pacote permitem criar uma estrutura de pacote na qual você adiciona entidades que serão exportadas posteriormente em um único pacote. É possível importar esse pacote e todas as entidades adicionadas para outra instância do Campaign.
Criar uma definição de pacote create-a-package-definition
As definições de pacote podem ser acessadas no menu Administration > Configuration > Package management > Package definitions.
Para criar uma definição de pacote, clique em New e preencha as informações gerais sobre a definição de pacote.
Você pode então adicionar entidades à definição do pacote e exportá-lo para um pacote de arquivos XML.
Tópicos relacionados:
Adicionar entidades a uma definição de pacote add-entities-to-a-package-definition
Na guia Content, clique no botão Add para selecionar as entidades que serão exportadas com o pacote. As práticas recomendadas ao selecionar entidades são apresentadas em esta seção.
As entidades podem ser adicionadas a uma definição de pacote diretamente da sua localização na instância. Para fazer isso, siga as etapas abaixo:
-
Clique com o botão direito do mouse na entidade desejada e depois selecione Actions > Export in a package.
-
Selecione Add to a package definition e depois selecione a definição de pacote à qual deseja adicionar à entidade.
-
A entidade é adicionada à definição de pacote e será exportada com o pacote (consulte esta seção).
Configurar a geração de definições de pacote configure-package-definitions-generation
A criação de pacote pode ser configurada na guia Content de definição de pacote. Para fazer isso, clique em Generation parameters.
-
Use a opção Include the definition para incluir a definição usada atualmente na definição de pacote.
-
Use a opção Include an installation script para adicionar um script javascript a ser executado na importação de pacotes. Quando selecionada, uma guia Script é adicionada na tela de definição de pacote.
-
Use a opção Include default values para adicionar os valores de todos os atributos da entidade ao pacote.
Essa opção não está selecionada por padrão para evitar exportações longas. Isso significa que, por padrão, os atributos das entidades com valores padrão ('string vazia', '0' e 'falso' se não definido de outra forma no schema) não são adicionados ao pacote e, portanto, não são exportados.
note caution CAUTION Se a instância onde o pacote for importado contiver entidades idênticas ao próprio pacote (por exemplo, com a mesma ID externa), então seus atributos não serão atualizados. Isso pode ocorrer se os atributos da instância anterior tiverem valores padrão, pois não estão incluídos no pacote. Nesse caso, selecionar a opção Include default values impediria mesclar as versões, pois todos os atributos da instância anterior seriam exportados com o pacote.
Exportar pacotes de uma definição de pacote export-packages-from-a-package-definition
Siga as etapas abaixo para exportar um pacote de uma definição de pacote:
- Selecione a definição de pacote para exportar, clique no botão Actions e selecione Export the package.
- Verifique o nome e o local do arquivo exportado.
- Clique no botão Start para iniciar a exportação.
Importar pacotes import-packages
O assistente de importação de pacotes pode ser acessado pelo menu principal Tools > Advanced > Import package do console do cliente.
Instalar um pacote de um arquivo install-a-package-from-a-file
Para importar um pacote de dados existente, siga estas etapas:
- Acesse o assistente de importação pelo menu principal Tools > Advanced > Import package do console do cliente.
- Selecione o arquivo XML e clique em Open.
O conteúdo do pacote a ser importado é exibido na seção intermediária do editor.
Clique em Next e em Start para iniciar a importação.
Instalar um pacote integrado install-a-standard-package
Pacotes incorporados (também conhecido como pacotes padrão) são instalados quando o Adobe Campaign é configurado. Dependendo das suas permissões, do modelo de implantação e da oferta de produto, você pode importar novos pacotes padrão.
Consulte o contrato de licença para verificar quais pacotes você pode instalar.
Práticas recomendadas para o pacote de dados data-package-best-practices
Esta seção descreve como organizar pacotes de dados de forma consistente durante a vida útil do projeto.
Versões
Você sempre deve importar dentro da mesma versão da plataforma. Você deve verificar se implantou seus pacotes entre duas instâncias que têm a mesma build. Nunca force a importação e sempre atualize a plataforma primeiro (se a build for diferente).
Preste atenção ao schema e à estrutura do banco de dados. A importação de um pacote com schema deve ser seguida pela geração do schema.
Tipos de pacotes package-types
Comece definindo diferentes tipos de pacotes. Somente quatro tipos são usados:
Entidades
- Todos os elementos específicos "xtk" e "nms" no Adobe Campaign como schemas, formulários, pastas, templates do delivery etc.
- Você pode considerar uma entidade como um elemento "admin" e "platform".
- Não se deve incluir mais de uma entidade ao fazer upload de um pacote em uma instância do Campaign.
Se precisar implantar sua configuração em uma nova instância, você poderá importar todos os pacotes de entidade.
Recursos
Este tipo de pacote:
- Responde a um requisito/especificação do cliente.
- Contém uma ou várias funcionalidades.
- Deve conter todas as dependências para poder executar a funcionalidade sem qualquer outro pacote.
Campanhas
Este pacote não é obrigatório. Às vezes, é útil criar um tipo específico para todas as campanhas, mesmo se uma campanha puder ser vista como um recurso.
Atualizações
Depois de configurado, um recurso pode ser exportado para outro ambiente. Por exemplo, o pacote pode ser exportado de um ambiente dev para um ambiente de teste. Neste teste, um defeito é revelado. Primeiro, ele precisa ser corrigido no ambiente dev. Em seguida, o patch deve ser aplicado na plataforma de teste.
A primeira solução seria exportar todo o recurso novamente. Mas, para evitar qualquer risco (atualizar elementos indesejados), é mais seguro dispor de um pacote que contenha apenas a correção.
É por isso que recomendamos criar um pacote de "atualização", contendo apenas um tipo de entidade do recurso.
Uma atualização não pode ser apenas uma correção, mas também um novo elemento do seu pacote de entidade/recurso/campanha. Para evitar a implantação de todo o pacote, é possível exportar um pacote de atualização.
Nomeação de convenções data-package-naming
Agora que os tipos estão definidos, devemos especificar uma convenção de nomenclatura. O Adobe Campaign não permite criar subpastas para especificações de pacotes, o que significa que os números são a melhor solução para se manter organizado. Os números prefixam os nomes dos pacotes.
Por exemplo, você pode usar a seguinte convenção:
- Entidade: de 1 a 99
- Recurso: de 100 a 199
- Campanha: de 200 a 299
- Atualização: de 5000 a 5999
Ordem dos pacotes de entidade entity-packages-order
Para ajudar na importação, os pacotes de entidade devem ser ordenados, pois devem ser importados.
Por exemplo:
- 001 - Schema
- 002 - Formulário
- 003 - Imagens
- etc.
Documentação do pacote package-documentation
Ao atualizar um pacote, você deve sempre colocar um comentário no campo de descrição para detalhar quaisquer modificações e motivos (por exemplo, "adicionar um novo schema" ou "corrigir um defeito").
A prática recomendada também é inserir a data da atualização.