Jump to content

Geoffrey Gerhard

Members
  • Posts

    57
  • Joined

  • Last visited

  • Days Won

    2

Geoffrey Gerhard last won the day on May 28 2020

Geoffrey Gerhard had the most liked content!

1 Follower

Profile Information

  • Slogan
    Guru
  • Gender
    Not Telling

FileMaker Experience

  • Skill Level
    Expert
  • FM Application
    18

Platform Environment

  • OS Platform
    X-Platform
  • OS Version
    Recent

FileMaker Partner

  • Certification
    8
    9
    11
    12
    13
    14
  • Membership
    FileMaker Business Alliance

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Geoffrey Gerhard's Achievements

Contributor

Contributor (5/14)

  • Dedicated Rare
  • First Post
  • Collaborator
  • Week One Done
  • One Month Later

Recent Badges

3

Reputation

  1. The calc that generated the text block you included is adding confusion, as the SalesRepRet doesn't have a FullName node of its own. The SalesRepEntityRef child node does, but it's actually referencing the values from a linked Employee, Vendor, or OtherName record. SalesRepRef is like a Value List utility table that gathers records from multiple table for display, and it's a pretty sure bet that the ListID in your text block's salesRepRef line could be used to query the three tables to identify the QB list source table. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  2. Are all three Sales Reps records Active? Is the SalesRepEntity record (Employee, Vendor, OtherName) Active? What's the full text of the error message? Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  3. Yup! I use the XMLOps tab on the OSR page ( https://static.developer.intuit.com/qbSDK-current/common/newosr/index.html ) for reference. It lists the elements in the right order, identifies whether they're required or optional, and shows the default/alternate values for ENUMTYPE elements. I think I've seen alternate pages that show detail, but didn't like the page layouts and scrolling needed to navigate and find what I needed. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  4. That message means that you've added the BillAddress node out of sequence. From the "Expecting: SalesRepRef" message, it appears that you're adding it after the DueDate element. BillAddress cannot precede RefNumber, and must precede ShipAddress, PONumber, TermsRef, DueDate, etc. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  5. It's likely that the demo file's query applies a NameFilter to limit the time it takes to return its result. If you remove that node, and there are no other filters applied, the query will return all customers. Be careful sending an unfiltered CustomerQuery Request if the QB file contains more than a couple thousand customers. There's a point at which the amount of data in a Customer or Vendor query's response will dramatically increases the time it takes FileMaker to receive it and become responsive again. If there are more than 10,000 QB customers, it can seem like FileMaker has permanently hung after sending the query request. Really large QB Customer lists can take up to an hour of the "flipping hourglass" before FMP becomes responsive again. All that said: Unless you're populating your FMP Customer table from the CustomerQueryRs, or a "shadow table" that you'll use to help you match the QB and FMP records, you're likely to have more success walking your FMP Customer list and passing the FullName element to find exact matches. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  6. Glad you got it working. Regarding PCQB_SGetXML: It's really handy, especially when an integration starts getting nuanced and/or complex. Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  7. What you've quoted is a Response—note the <InvoiceAddRs> and </InvoiceRet> tags. I wouldn't expect that result from a PCQB_SGetXML( "Request" ; "" ) call. There should be no issue identifying a SalesRep in an InvoiceAddRq. You'd normally pass the value in a PCQB_RqAddFieldWithValue( "SalesRepRef:ListID" ; "..." ; "" ) or PCQB_RqAddFieldWithValue( "SalesRepRef:FullName" ; "Initials" ; "" ) call. I'm wondering if there's an issue with the ambiguity between the SalesRep's ListID and SalesRepEntityRef:ListID. You want to pass the former, not the latter. If you're passing SalesRepRef:FullName, note that the value is a max of 5 characters in length. You can find the value in the QB UI or in the SalesRepQueryRs—it's value in the list element "Initials". (Sales rep has no FullName element except inside the SalesRepEntity node, which ties it to an Employee or Other Name record.) HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  8. That's odd. Failed validation used to return something that looked like this... CODE: -1000 SEVERITY: failed validation MESSAGE: Error at OpenBalance Reason: '!!ERROR!! Amount type argument out of range 110748721.32' violates pattern constraint of '([+\-]?[0-9]{1,13}(\.[0-9]{2})?)?'. The element 'OpenBalance' with value '!!ERROR!! Amount type argument out of range 110748721.32' failed to parse. Field Value: !!ERROR!! Amount type argument out of range 110748721.32 ...in response to the SGetStatus call. Before you call PCQB_RqExecute, pause your script and use the data viewer to capture the result of PCQB_SGetXML( "Request" ; "" ) and post it here. Perhaps that will show enough detail and context to identify the problem. Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  9. PCQB_SGetStatus function returns a description of what caused the failure in its "MESSAGE:" segment. Is there anything there that provides more details? Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  10. What's the full text of the error message? Error -1000 is pretty general, I think. (Your InvoiceAdd works without the SalesRepRef elements, right?) Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  11. This error can result when an Item or Customer has been deleted, or when the Customer record identified by the ListID has been merged with another Customer. The latter is much more common when the problem is a Customer ListID, as deleting a Customer record in the QB UI is terrible idea unless there are no transactions related to it. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  12. Coming to this thread late, but a couple notes for readers who might have similar issues: Use an ItemQuery to find all Items, regardless of their QB type, that match the request's criteria. PCI Pal correctly notes that the "ManufacturerPartNumber" is not available as a filter in a Query Request. But if "Part Number" is meant to describe the QB Item Name/Number value, you can use the NameFilter in your Query Request. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  13. If I'm reading correctly, you're looking at the response from an ItemInventoryQuery. It only shows the ListID and FullName values of the three Accounts relevant to an inventory item: IncomeAccount, COGSAccount, and AssetAccount. To get the AccountNumber value for any one of them, you'll need to create an AccountQuery request. Use the ListID or FullName value returned by the ItemInventoryQuery. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  14. Yes. Use the AppliedToTxnAdd node to identify the Invoice's TxnID and PaymentAmount values. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
  15. Hey Bruce— I can't provide an example because my process is built into a "black box" file that I use as middleware between a client solution and QB. That file is the result of many projects that iteratively improved it, and it has hundreds of development hours in it. I started a basic outline of how it works on the Request side, and realized you'd be much better off using the normal functions to create Requests. Responses, though, are a different matter. The PCQB_Rs functions work fine for simple integrations, but parsing the Response from a complex Query or a Report is much more powerful—and I'd argue, faster to develop—using XPath parsing. An Invoice Query Response that includes LineItems could apply an XPath filter to return a list of the FullName values of every non-taxable LineItem that had an Amount >= $100, for example. One line of code. An Invoice Query Response that includes LinkedTxns could do the same to determine all payment method(s) or payment amounts. One line of code. Super helpful whenever there may be multiple iterations of a node but you only care about an identifiable subset of them. HTH! Geoffrey Gerhard Creative Solutions Incorporated 14000 Creekside Drive Matthews, NC 28105 704.814.6852
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.