Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Formula.Firewall Error using CSV string in (step 'Source').

ErrorMessage: Query 'Query1' (step 'Source') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination.

 

DataSource Settings:

1) "Database connection is set to PUBLIC."

2) "CSV connection is set to PUBLIC."

 

DataSources Being used:

1) SQL Server database query. (Query1)

2) CSV File converted to a String. (Query1List)

 

We Have 2 queries:

Query1 (This Query is the SQL database connection which is using the Query1List data from the CSV.)

 


Query1List (This Query is just just converting the CSV data into a consumable string.)

 

I must resolve this firewall error in order to propperly schedule a refresh window for this data.
How can I allow for the use of 2 data sources within the "Source" step of Query1?

I've read the blog posts telling me to seperate the two queries. It's impossible to execute "Query1" without the IN CLAUSE. 

 

If you need more context just ask.

  • Anonymous's avatar
    Anonymous
    6 years ago

    Hi Anonymous,

    How about add custom steps to get data from CSV file and invoke SQL connector in same query table?

    For example:

    let
    	list=Csv.Document(File.Contents("xxxxxxxx")),
    	merge="'"& Text.Combine(list,"','")&"'",
    	Source=Sql.Database("xxxxxxx","xxxx",[Query="select xxx from xxx where code in ("&merge&")")
    in
    	Source

    Notice: please setting 'data privacy' to 'public' to prevent the error of cross source invoke.

    Regards,

    Xiaoxin Sheng

4 Replies

  • Anonymouscreate a separate list for CSV and then use that list in your SQL query, read this post if it helps.

     

    I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!

     

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      parry2k 

       

      I took your advice and still get the same message. 

      See Below, 

       

      Query #1:

      We start with "csvTestCodes". (This query is just the Table returned from the .csv file.)

       

       

      Query #2:

      We move to "listTestCodes" second. (This query we are converting, csvTestCodes into a List instead of a Table.)

       

      Query #3: 

      Now that we have a list of Test Codes we convert it to a string with "TestCodesString".

       

      Query #4

      Lastly, we pass the "TestCodesString" into Query1.

       

       

      Hopefully you have more advice. I've already read that blog post you attached and it's not working for me unless the steps I've followed above are wrong???

       

      Regards

       

       

       

       

       

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hi Anonymous,

        How about add custom steps to get data from CSV file and invoke SQL connector in same query table?

        For example:

        let
        	list=Csv.Document(File.Contents("xxxxxxxx")),
        	merge="'"& Text.Combine(list,"','")&"'",
        	Source=Sql.Database("xxxxxxx","xxxx",[Query="select xxx from xxx where code in ("&merge&")")
        in
        	Source

        Notice: please setting 'data privacy' to 'public' to prevent the error of cross source invoke.

        Regards,

        Xiaoxin Sheng