Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use a biblioteca de clientes Power Apps para aplicativos de código para conectar seu aplicativo de código a SharePoint e usar os modelos e serviços gerados para executar operações CRUD (Criar, Ler, Atualizar, Excluir) em uma lista de SharePoint.
Pré-requisitos
- Power Apps biblioteca cliente para aplicativos baseados em código
- Power Apps CLI (PAC CLI) versão 1.50 ou posterior
- Você deve estar conectado ao ambiente usando a CLI do PAC
Cenários com suporte
Há suporte para os seguintes cenários ao se conectar a SharePoint usando a biblioteca de clientes Power Apps para aplicativos de código:
- Adicionar listas de SharePoint como fontes de dados usando a CLI do PAC
- Executar operações CRUD em uma lista de SharePoint
- Obter valores possíveis para colunas de escolha, consulta ou pessoa/grupo
Configurar seu aplicativo de código
Antes de executar operações CRUD (criar, ler, atualizar e excluir) em seu aplicativo de código, conclua estas etapas de instalação.
Adicionar sua fonte de dados SharePoint
Adicione sua fonte de dados SharePoint seguindo as instruções em Conectar aos dados.
Importar tipos e serviços necessários
Quando você adiciona uma fonte de dados, os arquivos de modelo e de serviço são gerados e colocados automaticamente na /generated/services/ pasta. Por exemplo, se você adicionar a ChoicesTest1 lista, os seguintes arquivos serão criados:
-
ChoicesTest1Model.ts– Define o modelo de dados para a lista ChoicesTest1. -
ChoicesTest1Service.ts– Fornece métodos de serviço para interagir com dados na lista ChoicesTest1.
Você pode importar e usar esses arquivos em seu código App.tsx da seguinte maneira:
import { ChoicesTest1Service } from './generated/services/ChoicesTest1Service';
import type { ChoicesTest1 } from './generated/models/ChoicesTest1Model';
Ler registros
Este exemplo busca todos os itens e define o estado.
const loadRecords = async () => {
try {
const result = await ChoicesTest1Service.getAll();
if (result.data) {
setRecords(result.data); // result.data is T[]
} else {
// handle empty or error
}
} catch (err) {
// handle error
}
};
Este exemplo lê um único registro.
const fetchOne = async (id: string) => {
const r = await ChoicesTest1Service.get(id);
if (r.data) {
// r.data is a single record typed as ChoicesTest1
}
};
Criar registros
Para os exemplos nas etapas a seguir, os tipos de exemplo do arquivo de modelo são ChoicesTest1, e Choices1ValuepersonValuelookupValue.
Mapear identificadores selecionados para objetos expandidos
Observação
Os modelos gerados podem incluir nomes de propriedades internas com
#(por exemplo:Choices1#Id) que são usados para associação em formulários, mas não devem ser incluídos no conteúdo enviado ao conector SharePoint. Quando você atualiza ou cria uma linha em sua lista, a API SharePoint espera que você forneça o objeto expandido para colunas referenciadas (autor, editor, colunas de pessoa/grupo e assim por diante) em vez de apenas as IDs.Consulte a documentação da API SharePoint para obter mais informações.
const choices1Obj = selectedChoices1Id ? choices1Options.find(c => c.Id === selectedChoices1Id) : undefined; const personObj = selectedPersonClaims ? personOptions.find(p => p.Claims === selectedPersonClaims) : undefined; const lookupObj = selectedLookupId ? lookupOptions.find(l => l.Id === selectedLookupId) : undefined;Compilar conteúdo e criar
Certifique-se de omitir as propriedades contendo
#, incluir objetos expandidos para opções, pesquisas e pessoas, e, se necessário, adicionar informações de tipo de conteúdo. Use os tipos de modelo gerados para ajudar a criar a carga útil.// Content type (example static sample; retrieve dynamically if needed) const contentTypeId = "0x0100..."; // replace with your content type id const payload = { Title: titleValue, Choices1: choices1Obj, Choices2: choices2Obj, Choices3: choices3Obj, person: personObj, yesno: yesnoBoolean, lookup: lookupObj, "{ContentType}": { "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedContentType", Id: contentTypeId, Name: "Item" } } as Partial<Omit<ChoicesTest1, "ID">>; // create const created = await ChoicesTest1Service.create(payload as Omit<ChoicesTest1, "ID">); if (created.data) { // success }
Atualizar registros
Use update(id, payload) do arquivo de serviço gerado. Forneça os mesmos objetos expandidos que você faria ao criar um registro.
Por exemplo:
const updatePayload = {
Title: updatedTitle,
Choices1: updatedChoices1Obj,
// ...
} as Partial<Omit<ChoicesTest1, "ID">>;
await ChoicesTest1Service.update(recordId, updatePayload);
Excluir registros
Verifique se recordId é a ID da cadeia de caracteres que o serviço espera. Geralmente, essa é uma ID de item numérico convertida em cadeia de caracteres.
await ChoicesTest1Service.delete(recordId);
Entidades referenciadas (Opções/Pesquisa/Pessoa)
Para preencher listas suspensas, chame getReferencedEntity(). SharePoint sempre retorna uma matriz de valor que contém objetos da entidade referenciada. Talvez você queira normalizar a resposta, pois alguns conectores retornam uma estrutura no formato { value: [] }, enquanto outros fornecem a matriz diretamente.
// The first parameter is a search term, the second is the referenced entity name
const res = await ChoicesTest1Service.getReferencedEntity("", "Choices1");
// normalize:
const dataArray = (res.data as { value?: any[] })?.value || res.data;
const options = Array.isArray(dataArray) ? dataArray : [];
// map to select options:
const selectOpts = options.map(o => ({ id: o.Id, label: o.Value }));
Cenários sem suporte
A biblioteca de clientes Power Apps para aplicativos de código e a CLI pac permite operações CRUD em listas de SharePoint, mas não dá suporte a APIs de Processamento de Documentos ou ações como sincronização de itens ou alterações de permissão. Você pode adicionar esses recursos criando um arquivo de serviço personalizado para seu aplicativo de código.