cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Frequent Visitor

How to open a one drive file link which comes from flow

Hello guys,

 

I'm trying to open a file that is stored in one drive and the link is coming from Flow.

 

My code is:

 

Concurrent(
    Set(
        generatedFile, 
        PdfGenerator.Run(
            "Relatório PEP",
            HtmlText1.HtmlText,
            Concatenate(
                "avaliacao_",
                Text(item.'Data da Avaliação'), 
                Text(item.Empresa)
            )
        )
    ),
    Notify("Gerando Relatório", NotificationType.Information)
);

Launch(generatedFile.arquivo);

 

 

Look at the result of the flow:

image.png

 

And the result from the app monitor:

 

{
  "time": "10:24:05.008",
  "category": "Network",
  "name": "Run",
  "data": {
    "dataOperation": {
      "protocol": "rest",
      "operation": "Run",
      "dataSource": "PdfGenerator"
    },
    "context": {
      "rule": "Icon11.OnSelect",
      "nodeId": ""
    },
    "request": {
      "url": "https://europe-001.azure-apim.net/invoke",
      "method": "POST",
      "headers": {
        "x-ms-user-agent": "PowerApps/3.20022.19 (Web AuthoringTool; AppName=937f24cc-6588-4c1b-9957-cebce310f613)",
        "x-ms-client-session-id": "22a0ba76-fd47-4490-8bf9-96b179611bc2",
        "x-ms-client-request-id": "ad609876-7a28-46e2-9254-67c0a22f749f",
        "Accept-Language": "en-US",
        "Accept": "*/*",
        "Cache-Control": "no-cache, no-store",
        "Content-Type": "application/json",
        "x-ms-request-method": "POST",
        "x-ms-request-url": "/apim/logicflows/0e2e5910-c939-45b0-a861-192e574ce6c8/triggers/manual/run?api-version=2015-02-01-preview"
      },
      "body": {
        "Initializevariable_Value": "Relatório PEP",
        "varHtmlContent_Value": "<!DOCTYPE html>\n<html lang=\"pt-BR\">\n\n<head>\n    <meta charset=\"utf-8\">\n    <title>Relatório PEP</title>\n    <style>\n        body {\n            background-color: white;\n            color: #10384f;\n        }\n\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            border: 0;\n        }\n\n        th {\n            background-color: #10384f;\n            color: white;\n            padding: 10px 0;\n        }\n\n        td {\n            padding: 5px 0;\n        }\n\n        .bordered {\n            border: solid 1px #10384f;\n        }\n\n        .obs-table td {\n            height: 150px;\n            vertical-align: top;\n        }\n\n        .text-left {\n            text-align: left !important;\n        }\n\n        .container-image {\n            width: 50px;\n        }\n\n        body {\n            margin: 20px;\n            position: relative;\n        }\n\n        .footer>div {\n            display: inline;\n        }\n\n        .footer .logo {\n            width: 5%;\n        }\n\n        .footer .logo img{\n            height: 24px;\n        }\n\n        .footer td:not(.logo){\n            overflow: hidden;\n        }\n\n        .footer-text {\n            display:block;\n            width: 100%;\n            padding: 10px 10px;\n            background-color: #900C3F;\n            color: white;\n            margin-left: 10px;\n        }\n        .text-bold{\n            font-weight:bold;\n        }\n\n        td:not(.text-bold){\n            padding-left: 5px;\n        }\n    </style>\n</head>\n\n<body>\n    <table>\n        <tbody>\n            <tr>\n                <td colspan=\"3\">\n                    <table>\n                        <tr>\n                            <th >RELATÓRIO DE AVALIAÇÃO</th>\n                            <td width=\"5%\"><img src=\"{{logotipo_bayer}}\" height=\"24\" class=\"logo-bayer\" ></td>\n                        </tr>\n                    </table>\n                </td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Data:</td>\n                <td class=\"text-bold\">Fazenda:</td>\n                <td>Talhão:</td>\n            </tr>\n            <tr>\n                <td>2/19/2020</td>\n                <td></td>\n                <td></td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Cliente:</td>\n                <td class=\"text-bold\">Supervisor:</td>\n                <td class=\"text-bold\">Técnico</td>\n            </tr>\n            <tr>\n                <td>Bracell<td>\n                <td></td>\n                <td></td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">EPS:</td>\n                <td class=\"text-bold\">Operador:</td>\n                <td class=\"text-bold\">Encarregado:</td>\n            </tr>\n            <tr>\n                <td></td>\n                <td>Marcelo</td>\n                <td>Ezequiel </td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Tipo de Atividade:</td>\n                <td class=\"text-bold\">Identificação Implemento</td>\n                <td class=\"text-bold\">Trator:</td>\n            </tr>\n            <tr>\n                <td></td>\n                <td>OK</td>\n                <td>5015</td>\n            </tr>\n            <tr class=\"divider\">\n                <td colspan=\"3\">&nbsp;</td>\n            </tr>        \n\n            <tr>\n                <th colspan=\"3\">DESCRIÇÃO DO PULVERIZADOR E DA APLICAÇÃO</th>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Produto 1:</td>\n                <td class=\"text-bold\">Produto 2:</td>\n                <td class=\"text-bold\">Produto 3:</td>\n            </tr>\n            <tr>\n                <td>Flumyzin</td>\n                <td>Scout</td>\n                <td>Scout</td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Produto 4:</td>\n                <td class=\"text-bold\"></td>\n                <td class=\"text-bold\"></td>\n            </tr>\n            <tr>\n                <td></td>\n                <td></td>\n                <td></td>\n            </tr>\n            <!-- <tr>\n                <td class=\"text-bold\">Produto 1:</td>\n                <td class=\"text-bold\">Dose recomendada:</td>\n                <td class=\"text-bold\">Dose aplicada:</td>\n            </tr>\n            <tr>\n                <td>Scout</td>\n                <td>2</td>\n                <td>1</td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Produto 2:</td>\n                <td class=\"text-bold\">Dose recomendada:</td>\n                <td class=\"text-bold\">Dose aplicada:</td>\n            </tr>\n            <tr>\n                <td>Scout</td>\n                <td>2</td>\n                <td>1</td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Produto 3:</td>\n                <td class=\"text-bold\">Dose recomendada:</td>\n                <td class=\"text-bold\">Dose aplicada:</td>\n            </tr>\n            <tr>\n                <td>Scout</td>\n                <td>2</td>\n                <td>1</td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Produto 4:</td>\n                <td class=\"text-bold\">Dose recomendada:</td>\n                <td class=\"text-bold\">Dose aplicada:</td>\n            </tr>\n            <tr>\n                <td>Scout</td>\n                <td>2</td>\n                <td>1</td>\n            </tr> -->\n            <tr>\n                <td class=\"text-bold\">Volume de calda:</td>\n                <td class=\"text-bold\">Velocidade:</td>\n                <td class=\"text-bold\">Faixa aplicação:</td>\n            </tr>\n            <tr>\n                <td>200</td>\n                <td>5.62500000000000</td>\n                <td>200</td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Vazão esperada:</td>\n                <td class=\"text-bold\">Vazão coletada:</td>\n                <td class=\"text-bold\">Desvio %:</td>\n            </tr>\n            <tr>\n                <td>?</td>\n                <td>?</td>\n                <td>?</td>\n            </tr>\n            <tr>\n                <td class=\"text-bold\">Vazão status:</td>\n                <td class=\"text-bold\">Status Bicos:</td>\n                <td class=\"text-bold\">Status Distribuição:</td>\n            </tr>\n            <tr>\n                <td>?</td>\n                <td>Reprovado</td>\n                <td>0</td>\n            </tr>\n            <tr class=\"divider\">\n                <td colspan=\"3\">&nbsp;</td>\n            </tr>  \n            <tr>\n                <th colspan=\"3\">OBSERVAÇÕES</th>\n            </tr>\n            <tr>\n                <td colspan=\"3\">Foi coletada apenas 3 bicos pois um anti gotejo estava com vazamento.</td>\n            </tr>\n        </tbody>\n    </table>\n<hr>\n    <table class=\"footer\">\n        <tr>\n            <td class=\"logo\"><img src=\"{{logotipo_pep}}\" alt=\"\"></td>\n            <td><span class=\"footer-text\">RELATÓRIO DE AVALIAÇÃO DE PULVERIZADOR</span></td>\n        </tr>\n\n    </table>\n</body>\n\n</html>",
        "varFileName_Value": "avaliacao_2/19/2020Bracell"
      }
    },
    "response": {
      "duration": 11712.07,
      "size": 143,
      "status": 200,
      "headers": {
        "Cache-Control": "no-cache",
        "content-encoding": "gzip",
        "Content-Type": "application/json; charset=utf-8",
        "Date": "Fri, 06 Mar 2020 13:24:04 GMT",
        "expires": -1,
        "pragma": "no-cache",
        "strict-transport-security": "max-age=31536000; includeSubDomains",
        "timing-allow-origin": "*",
        "vary": "Accept-Encoding",
        "x-ms-apihub-cached-response": true,
        "x-ms-client-tracking-id": "08586181058516244787360760313CU27",
        "x-ms-correlation-id": "d4c4dfc5-3143-4074-ba25-906e17c7c6d6",
        "x-ms-execution-location": "westeurope",
        "x-ms-ratelimit-burst-remaining-workflow-writes": 499,
        "x-ms-ratelimit-remaining-workflow-download-contentsize": 357913457,
        "x-ms-ratelimit-remaining-workflow-upload-contentsize": 357906153,
        "x-ms-ratelimit-time-remaining-directapirequests": 33322243,
        "x-ms-request-id": "westeurope:d4c4dfc5-3143-4074-ba25-906e17c7c6d6",
        "x-ms-tracking-id": "d4c4dfc5-3143-4074-ba25-906e17c7c6d6",
        "x-ms-trigger-history-name": "08586181058516244787360760313CU27",
        "x-ms-workflow-id": "039c563354ba4b53ab21a0fba7022e7e",
        "x-ms-workflow-name": "0e2e5910-c939-45b0-a861-192e574ce6c8",
        "x-ms-workflow-run-id": "08586181058516244787360760313CU27",
        "x-ms-workflow-system-id": "/locations/westeurope/scaleunits/prod-72/workflows/039c563354ba4b53ab21a0fba7022e7e",
        "x-ms-workflow-version": "08586181075482960578"
      },
      "body": {
        "arquivo": "https://bayergroup-my.sharepoint.com/:b:/g/personal/samuel_ferreira1_ext_bayer_com/EQO9lEXe3vpBjiHURXk2ApkBVZEG-IVdDEMtwNUJUYLNgw"
      }
    }
  },
  "duration": 11712.07,
  "status": 200,
  "responseSize": 143,
  "operation": "Run",
  "formula": "Icon11.OnSelect",
  "nodeId": "",
  "dataSource": "PdfGenerator",
  "id": 1
}

 

 

I have attached a gif to show you that the app does not launch the link.

 

For reference, I used the following video as base for my implementation:

https://youtu.be/MHE4TU8jkwQ 

 

Have you ever had a problem like this?

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Community Support
Community Support

Re: How to open a one drive file link which comes from flow

Hi @samurodrigo ,

No, you could configure the generated Share link scope for Organization or Anonymous. The screenshot as below:

3.JPG

 

On your side, you must make sure the flow runs well, and the generated Share Link could be Output from the "Respond to a PowerApps or flow" action.

 

After that, remove the flow connection from your canvas app, then save and publish your app. Then edit your canvas app again, add the flow connection, bind it to a button in your app, take a try with the formula I provided above, 

Set(
        generatedFileURL, 
        PdfGenerator.Run(
            "Relatório PEP",
            HtmlText1.HtmlText,
            Concatenate(
                "avaliacao_",
                Text(item.'Data da Avaliação'), 
                Text(item.Empresa)
            )
        ).arquivo     // Modify formula here
);
If(
   !IsBlank(generatedFileURL),               
   Notify("Gerando Relatório", NotificationType.Information)
);
Launch(generatedFileURL);

then check if the genertaedFileURL variable could be populated with proper value.

 

If the issue still exists, you may need to re-generate a new canvas app based on your data source, then try it again, check if the issue is fixed.

Note: The flow's configuration that you mentioned is proper, I think this issue is related to the integration between the canvas app and the flow.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

3 REPLIES 3
Highlighted
Community Support
Community Support

Re: How to open a one drive file link which comes from flow

Hi @samurodrigo ,

Is the generated PDF file URL Reference Link stored within your generatedFile variable properly?

Could you run the generated PDF file URL Reference Link within your app directly?

 

Based on the issue that you mentioned, I have made a test on my side, and don't have the issue that you mentioned. The flow's configuration as below:

1.JPG

Please check if you have configured your flow properly as above screenshot. Within your canvas app, please consider modify your formula as below:

Set(generatedFileURL, Blank());
Set(
        generatedFileURL, 
        PdfGenerator.Run(
            "Relatório PEP",
            HtmlText1.HtmlText,
            Concatenate(
                "avaliacao_",
                Text(item.'Data da Avaliação'), 
                Text(item.Empresa)
            )
        ).arquivo     // Modify formula here
);
If(
   !IsBlank(generatedFileURL),               
   Notify("Gerando Relatório", NotificationType.Information)
);
Launch(generatedFileURL);

Please consider take a try with above solution, then check if the issue is solved.

 

Also please take a try to add a button in your app, set the OnSelect property to following:

Launch(generatedFileURL);

then click this button, check if the generated file could be opened in web browser.

 

If the issue still exists, please consider remove the flow connection from your app, then re-add it again, try above solution, check if the issue is fixed.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted
Frequent Visitor

Re: How to open a one drive file link which comes from flow

hello @v-xida-msft , thank you for the answer!

 

Following are my comments:

Is the generated PDF file URL Reference Link stored within your generatedFile variable properly?

The generatedPdf variable never gets filled.  Although the flow returns to the URL, the variable is not filled

 

 

Could you run the generated PDF file URL Reference Link within your app directly?

Yes, I can.

About the flow configuration, I can't generate an anonymous link, this feature is disabled in my company.

 

 

{
  "status": 403,
  "message": "The feature has been disabled. Please contact your admin to get it enabled.",
  "source": "api.connectorp.svc.ms"
}

 

 


And about the changes in the code, I did it as follows:

 

 

Set(generatedFile, Blank());
Set(
    generatedFile, 
    PdfGenerator.Run(
        "Relatório PEP",
        HtmlText1.HtmlText,
        Concatenate(
            "avaliacao_",
            Text(item.'Data da Avaliação'), 
            Text(item.Empresa)
        )
    ).arquivo
);

If(
    !IsBlank(generatedFile), 
    Notify("Gerando Relatório", NotificationType.Information)
);

Launch(generatedFile);

 

 

But look at my variable, It never gets filled:

 

image.png

 

I also tried to put a button on the screen to launch the link, but as the variable doesn't fill, the button doesn't launch the URL.

 

One question: This flow will work only with anonymous links?

 

Best Regards

Highlighted
Community Support
Community Support

Re: How to open a one drive file link which comes from flow

Hi @samurodrigo ,

No, you could configure the generated Share link scope for Organization or Anonymous. The screenshot as below:

3.JPG

 

On your side, you must make sure the flow runs well, and the generated Share Link could be Output from the "Respond to a PowerApps or flow" action.

 

After that, remove the flow connection from your canvas app, then save and publish your app. Then edit your canvas app again, add the flow connection, bind it to a button in your app, take a try with the formula I provided above, 

Set(
        generatedFileURL, 
        PdfGenerator.Run(
            "Relatório PEP",
            HtmlText1.HtmlText,
            Concatenate(
                "avaliacao_",
                Text(item.'Data da Avaliação'), 
                Text(item.Empresa)
            )
        ).arquivo     // Modify formula here
);
If(
   !IsBlank(generatedFileURL),               
   Notify("Gerando Relatório", NotificationType.Information)
);
Launch(generatedFileURL);

then check if the genertaedFileURL variable could be populated with proper value.

 

If the issue still exists, you may need to re-generate a new canvas app based on your data source, then try it again, check if the issue is fixed.

Note: The flow's configuration that you mentioned is proper, I think this issue is related to the integration between the canvas app and the flow.

 

Best regards,

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

Helpful resources

Announcements
secondImage

Demo-Extravaganza 2020

Check out these cool Power Apps & vote on your favorite!

secondImage

Community Highlights

Check out whats happening in Power Apps

secondImage

Community User Group Member Badges

FIll out a quick form to claim your community user group member badge today!

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors
Top Kudoed Authors
Users online (9,817)