CoreBOSBB
My first webservice project - Printable Version

+- CoreBOSBB (https://discussions.corebos.org)
+-- Forum: Development (https://discussions.corebos.org/forumdisplay.php?fid=18)
+--- Forum: coreBOS Development (https://discussions.corebos.org/forumdisplay.php?fid=4)
+--- Thread: My first webservice project (/showthread.php?tid=465)



My first webservice project - Guido1982 - 10-21-2016

It's very likely I will receive an assignment to create a webservice interface for the one installation I maintain. I'd like to get some tips.

The project will consist of a module that relates itself to assets. This will be a module that creates a record for physical visits (or 'jobs') made to this asset. The basic idea is that someone planning jobs for technical personell creates a record from an asset. That record represents a 'job' or a 'visit'. This record creation will send an e-mail to a service man with a special link. That link will take him to a portal website that opens up a form, specific for the asset the job is related to. The service man fills out the form, hits submit and the content is sent back to corebos (the jobs module) where with the report/form data a PDF report is created using mPDF. The job-record is then updated and the new PDF will be attached for download.

Any help, tips, pointers or examples will be greatly appreciated. Thanks.


RE: My first webservice project - kapsule - 10-25-2016

It seems a good idea. It only that not me just of like is the subject of the PDFs. If you like as proof printed me seems good idea. However, the information generated in the PDF you can not analyze if you need it.

If a visit can have different reports, then the subject is complicated a little more. In that case, I would use a module type HelpDesk or Project. In this type of modules can have a part of visit and several elements related (TimeControls or ProjectTasks) that can define perfectly the fields of the form.

Anyway, maybe I understood well the development and with the approach that indicates it is more than enough Smile


RE: My first webservice project - joebordes - 10-25-2016

I think David (kapsule) is correct: use HelpDesk. Relate the HelpDesk module with assets.
HelpDesk already has the workflows to communicate with the user, it has mail converter support and is natively supported by all customer portal code and most webservice apps that is out there. Besides, conceptually it is exactly that: work fixing, installing or enhancing products/assets.
You can always use GenDoc or PDFMaker to create PDFs from the HD information.

I would recommend MyCCustomerPortal as a starting point, but if you just need a form then the Webservice Webform project may be enough.

http://corebos.org/demos/corebosmyc/
https://github.com/tsolucio/coreBOSMYCCP

http://corebos.org/documentation/doku.php?id=en:extensions:coreboswswebform
https://github.com/tsolucio/coreBOSwsWebform

Keep asking and inform us on how it goes.


RE: My first webservice project - Guido1982 - 10-26-2016

Thanks for the input. One thing I can say so far is that I think HelpDesk isn't going to cut it. The visits/incidents I'm talking about here are specific, in that they represent annual mandatory visits to perform a specific check on certain devices. Getting the HelpDesk module to work with this will require me to modify this, which I don't want to do. Also, the visits are conceptually like a helpdesk record, but not exactly so. Mixing this would create vagueness in the system and it's users.

The report data includes certain measurements taken at the time of the visit, which should not be editable because you have to be able to show what the device measured at that period in time. Hence the PDF's. Besides that, the PDF's need to be auto-filled with the data the tech-guy input into the form, something that HelpDesk can't do. The shear volume of the visits create the need for the automation.

Thanks for the tips, I'll read into them as soon as I can.


RE: My first webservice project - joebordes - 10-26-2016

We have a Help Desk module clone lying around somewhere...


RE: My first webservice project - Guido1982 - 10-27-2016

Would be great. I've had a meeting today about this subject and the project is definitely on. The goal is (in the end) to make a complete technician-portal. Have little time now, will get back on the forum soon.


RE: My first webservice project - joebordes - 10-27-2016

We should definitely work on that together. We have a lot of things developed.


RE: My first webservice project - Guido1982 - 10-28-2016

Sounds great! Do you have some working example? I don't have much time right now but what I can say is that the implementation discussed yesterday has the salesorder as the pivoting point of all physical operations. This may seem vague, but what I mean is that all calendar events, visit records, helpdesk tickets and so on should be related to a salesorder. So the SO is the core of a certain activity. The portal we've discussed will have the SO as the starting point for a tech-guy. From there, he'll perform his activities, fill out forms and in the end set the SO to status 'delivered'. More elaboration soon.


RE: My first webservice project - Guido1982 - 10-28-2016

Okay, now I have some free time to elaborate:

The company (where I used to work and for which I now maintain the coreBOS installation) use SalesOrders as the heart of activities. For anything taking place in the company, whether that being delivery of a newly sold product or service on existing products a SalesOrder is created. When a technician visits to (for instance) solve a problem or do an annual approval (they also service measurement equipment that needs a mandatory check every year) they also create a SalesOrder on which an estimate of time and materials is made in the inventory part of the salesorder. When the technician is done, he (if necessary) edits the inventory part of the salesorder to (for instance) edit the number of hours and materials used. After that, he sets the status to 'delivered'. The inhouse team gets an email of that status change so they know they can invoice the SO (this process is also being automated, that's why I needed the inventory creation workflow).

Now, the biggest challenge is:

During the visits by the technician that involve mandatory annual checks a report needs to be filled out, custom for that type of product (there are several). Right now that is done by printing the report and the technician filling it out by hand. This is the process that needs automation the most. My goal is to:
  • Create a module of which each record represents an individual examination. The filled report will be part of this record.
  • Set this module to be related to assets and sales orders.
  • Create a link that creates a examination-record from an asset, thereby creating a UI10 field with a backlink to that asset. Besides that the record should have some specific information like the technician that is going to perform this examination (coreBOS user, probably the standard "assigned to" field), the examination date. The status of the examination (is it completed, does it need an additional examination?). This process should be automated through my Schedular module, but it's not finished yet.
  • The examination should also have a reportname selection. That's going to determine which type of report the technician is eventually going to fill.
  • When examination records are made, the salesorder for that activity can be created, where financial stuff is handled in the inventory lines.
  • The examinations are selected for this salesorder (a process I want to automate through my "Schedular" module, that's not finished yet).
  • Now the portal kicks in
  • The technician can now go to the special technician portal. Here he can see the salesorder that are designated to him.
  • He can fold-out the salesorder to see what special actions are related here (right now only examinations, but this could also be HelpDesk tickets further on).
  • He can click each individual examination, after which an HTML report opens for this examination. Of course this should all be responsive, so he can even perform this task on his phone.
  • The report is autofilled with the customer and asset data.
  • He fills out the report, that stores a JSON object in memory containing the measurements.
  • When the report is done, he clicks "send", after which a webservice call to coreBOS is made connection to the examination record. This receives the JSON object and fills out the report in HTML, after which it is sent to mPDF.
  • mPDF creates a report from the HTML.
  • the examination module saves the PDF in the storage folder and creates a download link in the examination record for this PDF.

This way each examination is treated as an individual conceptual entity, as is the desired behaviour.

From the Schedular module I'm building I'd like to create a "new event" input that links all kinds of records to that event. So an account could be selected, which would let you select multiple assets that belong to that account. The selection of those assets could automatically create examination records for each asset. I still need to think about the best approach for all this, but this is roughly the idea.