Power Pages: Carregar documentos para o SharePoint sem integração

Por Erick Alves de Moura
Power Pages: Carregar documentos para o SharePoint sem integração

Nesta postagem do blog, mostrarei como fazer upload de um arquivo do Power Pages para uma biblioteca de documentos do SharePoint. Esta postagem ajudará os desenvolvedores do Power Platform a superar as limitações de interação com a Biblioteca de Documentos do SharePoint ou outros repositórios de arquivos sem a necessidade de configurar a Integração de Documentos do SharePoint com o Dataverse.

Pode haver muitos cenários em que a integração de documentos do SharePoint não seja uma opção viável e o requisito da solução seja carregar um arquivo de uma configuração do Power Pages e carregá-lo posteriormente no SharePoint/GitHub ou outros repositórios. Tudo o que você precisa é de um fluxo do Power Automate que funcione como uma camada de conexão entre a página externa e a Biblioteca de Documentos do SharePoint.

Situação

Como fazer upload de documentos do Power Pages/Power Apps Portals para uma lista/biblioteca do SharePoint? Salvar documentos do Power Pages no SharePoint/GitHub/Conta de armazenamento/Outros repositórios? Como passar um arquivo do Power Pages para o Power Automate?

Solução

Para resolver esse problema, você pode usar o código JScript que envia o arquivo e o carrega para sua biblioteca de documentos.

A transferência de documentos acontecerá nesta direção: 

Origem (Página Externa do Power Pages) -> Power Automate -> Destino (Biblioteca de Documentos do SharePoint).

A primeira parte é configurar a Biblioteca de Documentos do SharePoint. Você pode escolher uma biblioteca existente ou criar uma nova.

A segunda parte é o fluxo do Power Automate Cloud para capturar o arquivo e salvá-lo na Biblioteca de Documentos do SharePoint.

Power Automate

Para extrair o arquivo e salvá-lo no local desejado, neste caso Biblioteca de Documentos do SharePoint. As etapas abaixo mostram como definir esta configuração:

A primeira etapa para configurar o Power Automate é o acionador. Como esta solicitação será feita a partir da página externa, o gatilho será “Quando uma solicitação HTTP for recebida” do conector “Solicitação”. Mantenha o “esquema JSON do corpo da solicitação” em branco.

A segunda etapa é inicializar uma variável para armazenar o nome do arquivo. O fluxo aceitará entradas da página personalizada do Power Pages usando Form Multi-parts. Use a expressão abaixo para extrair o nome do arquivo.

triggerMultipartBody(1)[‘$content’]

A terceira etapa é criar um arquivo na biblioteca de documentos do SharePoint.  Passe a variável Nome do Arquivo na propriedade Nome do Arquivo. Passe a expressão abaixo no Conteúdo do Arquivo. 

base64toBinary(triggerMultipartBody(0)[‘$content’])

A quarta etapa é configurar a resposta para que a página personalizada saiba se a solicitação foi bem-sucedida ou não. Para isso, serão adicionadas duas ações de resposta em um ramo paralelo. A configuração será conforme abaixo:

  • Ação de primeira resposta : carregada no corpo, código de status como 200 e “foi bem-sucedido” selecionado na propriedade “Configurar execução após” da ação.
  • Segunda ação de resposta : Solicitação incorreta no corpo, código de status como 400 e “falhou, foi ignorado e expirou” selecionado na propriedade “Configurar execução após” da ação.

Se desejar, você pode adicionar outras ações no fluxo da nuvem antes de enviar a resposta com base no requisito.

Power Page

Aqui que existe o controle de upload de arquivo na página. O código abaixo serve para incluir os seguintes componentes na configuração HTML:

  1. Mensagem de sucesso
  2. Cabeçalho
  3. Controle de entrada
  4. Botão de envio
1<!–Heading to show success message–><h6 id=”uploadsuccess” style=”color: green;”></h6> <!–Heading for Title–> <h3 style=”color:black”><b>Upload document to SharePoint Document Library</b> </h3> <!–Input control–> <div style=”padding-top:30px”> <input type=”file” id=”file_upload” style=”margin-top: 10px;display:inline-block;padding: 8px;”></input> </div> <!–button to upload the document–> <button onclick=”uploadDocument()” style=”margin-top: 30px;” class=”btn-primary”>Upload File </button>

O script a seguir precisa ser adicionado à página para fazer uma chamada ao fluxo:

1<script> function uploadDocument() {
        var files = document.getElementById(‘file_upload’).files;
        if (files.length == 0) {
            alert(“Please choose any file…”);
            return;
        }
        var file = files[0];
        var filename = files[0].name;
        var form = new FormData();
        form.append(“”, file, “”);
        form.append(“filename”, filename);
        $.ajax({
                    method: “POST”,
                    url: ‘https://prod-11.centralindia.logic.azure.com:443/workflows/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=xxxxxxxxxxxxxxxxxxxxxxxxxxx’,
                    timeout: 0,
                    processData: false,
                    parametermimeType: “multipart/form-data”,
                    contentType: false,
                    data: form,
                    success: function(result) {
                        if (result == “Uploaded”) {
                            $(‘#uploadsuccess’).html(“File uploaded successfully.”)
                        })} < /script>  

Agora você pode testar a implementação.

Conclusão

Nesta postagem vimos como fazer upload de documentos da página personalizada do Power Pages para a Biblioteca de Documentos do SharePoint.

Veja também nosso artigo sobre Microsoft Power Pages redefine o desenvolvimento de websites Low-Code.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast