Publicado Wed, 04 Dec 2019 13:51:02 GMT por Chris McFarland
Hello Everyone:

From my DocuWare Cloud V7.2  system I need to be able to, in whatever manner, get my AP Invoices pushed into Sage Timberline as a posted invoice.

While the Sage system will import flat flies that are properly constructed, my GL coding information will live in a table field so getting everything consolidated into a nice flat file seem like it would be quite a challenge.

Maybe a web service built into a workflow for this task to generate the flat file, but DocuWare claims a tight integration with Sage so I wonder if there's something slicker and maybe more modular that I could plug in.  I really can't find anything that gives specifics on what this tight integration is.

What do you think?


Chris McFarland
Publicado Wed, 04 Dec 2019 13:52:03 GMT por Matthias Wieland DocuWare Europe GmbH Sr. Director Support EMEA
Dear Chris Mcfarland! It looks like the Community cannot answer your question. Thats why we have opened a Support Request with the Number SR-116214-R5Y9X for you. A Software Support Specialist will contact you directly to follow up. We will update this thread with the solution as soon as we have solved the Support Request. With Best Regards, DocuWare Support Team
Publicado Wed, 18 Dec 2019 14:54:24 GMT por Phillip Enns Systems Admin
Hey Chris,

Let me know if you figured anything out regarding this.  We have a few customers that could use Sage integration.  
Publicado Wed, 18 Dec 2019 17:10:52 GMT por Michael Weingand Professional Services Manager
Connect with Rhino Docs (Patrick Nguyen)  They have an integration module for Sage and DocuWare.  They have partnered with Sage for just this purpose.   
Publicado Wed, 18 Dec 2019 17:37:31 GMT por Chris McFarland

That's great to know about the rhino docs integration.  I know Patrick pretty well.

In this case I built it myself.

The client provided a template CSV file and I built Autoindex routines to populate a dedicated file cabinet where I write the rows for the base invoice and the gl coding detail rows from the table field.

Then i use the sorting order for the result list to arrange and group the rows so that the CSV file that you get when you export the result list conforms to the provided sample.

Publicado Wed, 18 Dec 2019 17:43:58 GMT por Phillip Enns Systems Admin
Thanks Chris and Michael,

for the csv option do you use anything to auto create the csv or just have them manually create it when necessary? 

Also I am currently working with Patrick on projects and probably going to use him on this as well.  Was still curious on what others have found though so I appreciate the info!  
Publicado Wed, 18 Dec 2019 18:11:18 GMT por Chris McFarland
I do not autocreate the file.  The user just manually exports the result list to get the CSV.  Pretty manual, not very pretty in a lot of ways, but functional.  My handling is not an easy build, and next time I'm likely to check out Patrick's offering before i build another one of these myself.
Publicado Thu, 19 Dec 2019 08:32:04 GMT por Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions
Hello folks,

you can use a Webservice in a Workflow to automatically write the CSV file.
In C#, this is written extremely fast, even if you do not know about coding yet.

This example takes a file name (complete path) and file content. If the file exists, it appends the content - if it does not, it creates the file.
Please remember that this code is just the very basic writing to file, without any error handling or validations or anything.
public string CreatePlaintextFile(string fullFilePath, string content)
  if (!File.Exists(fullFilePath)
    using (StreamWriter streamWriter = new StreamWriter(fullFilePath, false, Encoding.Unicode))
using (StreamWriter streamWriter = new StreamWriter(fullFilePath, true, Encoding.Unicode))
return "sucessfully wrote to file: " + fullFilePath;

Hope this helps.

Greetings from Germany,
Simon H. Hellmann
DocuWare System Consultant
Publicado Thu, 19 Dec 2019 12:20:27 GMT por Chris McFarland
Thanks for that great content, Simon!

It's hard to find much of a variety in working examples for Web Services, and this is wonderful to have.

There's an infrastructure reason for me to not be thinking too much about a web service for this function:

This is a cloud system, with no client hosted server presence at all, and in order to use a Web Service I have to host it somewhere and then make that web service accessible from the greater internet.  I'd have to request a server and then make all of the arrangements to have the web service made available to the cloud system, and negotiating that whole thing with a large/complex enterprise IT department is generally a bit of a task on its own.

Am I wrong in my understanding there, that the web service would have to be available from the outside internet?

Publicado Thu, 19 Dec 2019 13:21:37 GMT por Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions

Hi Chris,

you are welcome.

Correct, if we are talking about a cloud system, the Web Service must be accessible from the public internet. DocuWare Cloud is hosted on Microsoft Azure infrastructure.

Greetings from Germany,
Simon H. Hellmann
DocuWare System Consultant

Publicado Thu, 19 Dec 2019 13:30:32 GMT por Chris McFarland
OK, good to see that my understanding in order.

Would you have any examples that might show where the contents/structure of the output file is built out?

Thanks again!
Publicado Thu, 19 Dec 2019 14:21:10 GMT por Simon H. Hellmann Toshiba Tec Germany Imaging Systems GmbH IT-Consultant Document Management Solutions

Hi Chris,

these are parameters which should get passed along from the workflow designer. As you can only push global variables to a webservice, you need to put this data into a global variable. You could set the path as a fixed value in an "assign data" step and the content with an arithmetic expression in an "assign data" step.

You could also modify the function to accept multiple parameters instead of just a parameter "content" - like "name", "amount", "account", "invoiceNo"...

Then you could parse these like you wish inside the webservice - that might be easier than doing so in WF designer.

Greetings from Germany,

Simon H. Hellmann

DocuWare System Consultant

Publicado Tue, 30 Jun 2020 23:25:41 GMT por James Pue
Hi Chris,

Would it be possible to elaborate a little on how you constructed the autoindex to output GL Coding data from the table field?  This is very much what I would like to do, but I'm struggling with it.

Publicado Mon, 06 Jul 2020 12:23:01 GMT por Chris McFarland
Sure, I can break down what I ended up doing here.

The Sage import CSV file provided for reference had two lines for each invoice, with some columns being data that I had in DocuWare and some of them static data.

I started by creating a file cabinet just for the creation of these flat files with columns to fit the sample file, and with one additional for me to put in a bit of data that will tie the two lines together (get there in a bit).

I created two Autoindex routines.  One for each of those two lines.  A status triggered by a stamp flags invoices to be processed in.  These Autoindex routines create data entries in the file cabinet that are constructed just like the rows in the sample file.

I then created a special result list that correctly orders the invoice rows to match the format on the provided sample and that also hides the extra column that ties the row sets together.

From there we use a search to pull up sets that will make up an import file and use the Export Result List as CSV function to pull down the actual file that's going into Sage.

My explanation probably makes it sound more complicated than it really was, with the biggest lift being the SQL code that constructs the two different rows for each invoice but even that wasn't too bad.  Just took a little experimentation to get it right.


You must be signed in to post in this forum.