Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
CarlsBerg999
Helper V
Helper V

SOAP Query - Passing parameters from another query to second query's M-Code

Hi, 

 

I have a SOAP service (Quinyx) to which I connect to via Power Query. The M-code that works in simple situations is presented below. The issue is, that the employeeId field is mandatory in the SOAP service to which I connect to. Basically the service demands and returns only 1 employee at a time. We have hundreds of employees. I can get a full list of employeeId's with another query to Power Query, but what i need to do is to pass all employeeId's to this request automatically. 

 

Is this possible in any way in M-code, Python or R? What is the method that should be applied to solve this issue? 

 

let

SourceURL = "https://rc.quinyx.com/FlexForceWebServices.php?wsdl",

options = [ #"Content-Type"="text/xml;charset=UTF-8",
            #"Connection"="Keep-Alive"
          ],

WebContent = Web.Contents(SourceURL, 
    [Content=Text.ToBinary("

<soapenv:Envelope xmlns:xsi=#(0022)http://www.w3.org/2001/XMLSchema-instance#(0022) xmlns:xsd=#(0022)http://www.w3.org/2001/XMLSchema#(0022) xmlns:soapenv=#(0022)http://schemas.xmlsoap.org/soap/envelope/#(0022) xmlns:uri=#(0022)uri:FlexForce#(0022)>
   <soapenv:Header/>
   <soapenv:Body>
      <uri:wsdlGetTimePunches soapenv:encodingStyle=#(0022)http://schemas.xmlsoap.org/soap/encoding/#(0022)>
         <apiKey xsi:type=#(0022)xsd:string#(0022)>BLA-BLA-BLA-BLA</apiKey>
         <getTimePunchesRequest xsi:type=#(0022)flex:getTimePunchesRequest#(0022) xmlns:flex=#(0022)https://apiftp.quinyx.com/soap/FlexForce#(0022)>
            <!--You may enter the following 14 items in any order-->
            <!--Mandatory:-->
            <employeeId xsi:type=#(0022)xsd:int#(0022)>EACH EMPLOYEE ID (82387238) IS SET HERE </employeeId>
            <!--Optional:
            <badgeNo xsi:type=#(0022)xsd:string#(0022)>?</badgeNo>-->
         </getTimePunchesRequest>
      </uri:wsdlGetTimePunches>
   </soapenv:Body>
</soapenv:Envelope>

"),

Headers=options]) ,
XmlContent = Xml.Tables(WebContent),
    Table = XmlContent{0}[Table]
in
    Table

 

Thank you!

2 REPLIES 2
lbendlin
Super User
Super User

Have a table with your employee IDs.  Add a column that constructs the payload for each of them. Add another column that calls Web.Contents  on that payload.  Process each response individually or union them together.

Hi @lbendlin, apologies i didn't notice this thread had an answer. The idea itself seems ok, but I honestly have no idea how to accomplish this. I don't quite know how to reference "current row" in M. Do you have any references to some sort of guidance / tutorials / materials i could start studying to accomplish this? I'm pretty much lost on where to even begin.

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors