Forum Discussion

Tiger2514555's avatar
Tiger2514555
Helper III
2 years ago
Solved

This dataset includes a dynamic data source. Since dynamic data sources aren't refreshed in the Powe

I'm using google translate's API to translate my data source, but when I upload it to Power bi Service, it doesn't refresh for me. My M : let Source = Json.Document(Web.Contents("http://19...
  • tharunkumarRTK's avatar
    tharunkumarRTK
    2 years ago

    Tiger2514555 Ok, you might have caught the error already. Please validate and run. I am happy to have an offline discussion

    let
      Source = Json.Document(Web.Contents("http://192.168.99.46:8097/api/Mrr")), 
      #"Converted to Table" = Table.FromList(
        Source, 
        Splitter.SplitByNothing(), 
        null, 
        null, 
        ExtraValues.Error
      ), 
      #"Expanded Column1" = Table.ExpandRecordColumn(
        #"Converted to Table", 
        "Column1", 
        {
          "mrr_num", 
          "item", 
          "create_date", 
          "qty_mrr", 
          "raisedByID", 
          "raisedByName", 
          "failure", 
          "problemdescription", 
          "cause", 
          "causeOfDefact", 
          "ref_type", 
          "ref_num", 
          "ref_line", 
          "ref_release", 
          "entity", 
          "dispositionSerialNumber", 
          "dispositionFeature", 
          "dispositionFaultCode", 
          "dispositionCauseCode", 
          "dispositionQuantity", 
          "disposition", 
          "dispositionNote", 
          "lot_num", 
          "uf_ApprovalStatus", 
          "recordDate", 
          "unitcost", 
          "wiptotal", 
          "productName", 
          "suffix", 
          "status", 
          "closeDate", 
          "dispositionDate"
        }, 
        {
          "mrr_num", 
          "item", 
          "create_date", 
          "qty_mrr", 
          "raisedByID", 
          "raisedByName", 
          "failure", 
          "problemdescription", 
          "cause", 
          "causeOfDefact", 
          "ref_type", 
          "ref_num", 
          "ref_line", 
          "ref_release", 
          "entity", 
          "dispositionSerialNumber", 
          "dispositionFeature", 
          "dispositionFaultCode", 
          "dispositionCauseCode", 
          "dispositionQuantity", 
          "disposition", 
          "dispositionNote", 
          "lot_num", 
          "uf_ApprovalStatus", 
          "recordDate", 
          "unitcost", 
          "wiptotal", 
          "productName", 
          "suffix", 
          "status", 
          "closeDate", 
          "dispositionDate"
        }
      ), 
      #"Changed Type" = Table.TransformColumnTypes(
        #"Expanded Column1", 
        {
          {"mrr_num", type text}, 
          {"item", type text}, 
          {"create_date", type datetime}, 
          {"qty_mrr", Int64.Type}, 
          {"raisedByID", Int64.Type}, 
          {"raisedByName", type text}, 
          {"failure", type text}, 
          {"problemdescription", type text}, 
          {"cause", type text}, 
          {"causeOfDefact", type text}, 
          {"ref_type", type text}, 
          {"ref_num", type text}, 
          {"ref_line", Int64.Type}, 
          {"ref_release", Int64.Type}, 
          {"entity", Int64.Type}, 
          {"dispositionSerialNumber", Int64.Type}, 
          {"dispositionFeature", type text}, 
          {"dispositionFaultCode", type text}, 
          {"dispositionCauseCode", type text}, 
          {"dispositionQuantity", Int64.Type}, 
          {"disposition", type text}, 
          {"dispositionNote", type any}, 
          {"lot_num", type text}, 
          {"uf_ApprovalStatus", type text}, 
          {"recordDate", type datetime}, 
          {"unitcost", type number}, 
          {"wiptotal", type number}, 
          {"productName", type text}, 
          {"suffix", Int64.Type}, 
          {"status", type text}, 
          {"closeDate", type datetime}, 
          {"dispositionDate", type datetime}
        }
      ), 
      #"Added translated column" = Table.AddColumn(
        #"Changed Type", 
        "cause_of_defect(eng)", 
        each 
          if [causeOfDefact] <> "" then
            let
              encodedDescription = Text.Replace(Uri.EscapeDataString([causeOfDefact]), "%20", "+"), 
              apiEndpoint = "https://translate.googleapis.com/", 
              relativepath = "translate_a/single", 
              jsonResponse = try
                Json.Document(
                  Text.FromBinary(
                    Web.Contents(
                      apiEndpoint, 
                      [
                        RelativePath = relativepath, 
                        Query = [
                          client = "gtx", 
                          sl     = "th", 
                          tl     = "en", 
                          dt     = "t", 
                          q      = encodedDescription
                        ]
                      ]
                    )
                  )
                )
              otherwise
                null, 
              translatedText = 
                if jsonResponse
                  <> null and List.NonNullCount(jsonResponse)
                  > 0 and List.NonNullCount(List.First(jsonResponse))
                  > 0
                then
                  try Text.From(List.First(List.First(jsonResponse)){0}) otherwise null
                else
                  null
            in
              if translatedText <> null then translatedText else ""
          else
            ""
      ), 
      #"Renamed Columns" = Table.RenameColumns(
        #"Added translated column", 
        {{"create_date", "Date_Create"}}
      )
    in
      #"Renamed Columns"