Do not let any software impress you!

Only let it convince your intellect.
Slider img 1
Do not look for a business paradise!

It is a waste of time.
Slider img 2
Only yourself can push you uphill.

There is no easy road to prizes.
Slider img 3
Productivity is the name of the game.

And you have to conquer it.
Slider img 4
As long as you understand it,

you will start to build your know-how.
Slider img 5
We can help with that.

We have the tools and the method.
Slider img 6

Tell a Story using a Computer Language



“For the first time, you can tell a story using a programming language!“

Maybe the storytelling has nothing to do with computer technology, but this is a very first sight opinion. We speak to computers (write programs) because we want to say to computers about things that have to be done (because computers are our subordinates). If the computer knew a human language, we had to speak to it using our language, and all would be perfect. But, unfortunately, computers are not like that. So we must learn a computer language to say anything we want for computers. Right?

Wrong!

We cannot use computer (programming) languages to say anything to computers. However, you can say to a computer: “I want you to calculate this and that and after getting that value. By using these values, calculate the maximum of those numbers and then display the value to your boss (the user)“. The computer can understand what you said to it. There is no problem at all.

Now let‘s try to say the following to your computer:

“I want you to run a car service facility. So the job that you have to do is the following: Everyone of our employees can take calls from customers to arrange a service appointment. Then the customer gives a name and the car‘s number, and the model. After that, our employee provides a date and time for the appointment. Finally, at the appointment‘s date and time, the customer arrives at the facility‘s gate at the specified date and time. There the gate personnel permits him to enter. After that, the customer goes to Chief Mechanic. Here, the Chief Mechanic defines who will disassemble the car‘s engine, what the required parts are, and who the Reassembling Mechanic is. After that, the Disassembling Mechanic work‘s on the car while at the same time the personnel in the warehouse collect‘s the necessary parts. After both tasks, our employees finish, the Reassembling Mechanic starts to put the parts and reassemble. While the technical personnel takes care of the customer‘s car, he can have a coffee at the facility‘s cafeteria. Finally, after the customer finishes the coffee and our employees service the car, the customer goes to the office to pay and have a goodbye. That‘s all.“


Well, now our computer will be confused a little. It can understand perfectly everything about its “world“ (computational procedures), but it can not understand a word from the above command (human activity procedures). That‘s our world!

Folks, don‘t be disappointed by that. Now there is a solution to it. But first, let me rephrase the title of this article a little:

“For the first time, you can write a humans process using a programming language!“

The following context expresses the above boss‘s story using phrases that a computer can understand.

 start_action

  {(1) any user can put a new service request}

   callwait bpm_assign_job ( “new service request“ , __activation_user , ““ , 0)

  {(2) at date (app_date) the GATE SECURITY waits for the customer to come for the appointment}

   callwait bpm_assign_job ( “service appointment“ , ““ , “GATE SECURITY“ , app_date_num , serv_id )

  {(3) the CHIEF MECHANIC makes the first estimation of labor and materials, assigns a mechanic}

   callwait bpm_assign_job ( “service estimation“ , ““ , “CHIEF MECHANIC“ , 0 , serv_id )

  {split activities at the same time, the warehouse prepares the materials,}

   {       the mechanic starts working, the cafeteria hosts the customer}

   split_in_branch                                 {parallel split the technical department does the job while in}

      split_in_branch       {parallel split (4) the warehouse prepares the required parts while }

         callwait bpm_assign_job ( “collect parts“ , ““ , “WAREHOUSE“ , 0 , serv_id )

      and_branch             {(5) the assigned mechanic disassembles the engine}

         callwait bpm_assign_job ( “disassemble“ , disas_mechanic , ““ , 0 , serv_id )

      join_branches

    {(6) the assigned mechanic puts the parts and reassembles the engine}

      callwait bpm_assign_job ( “reassemble“ , reass_mechanic , ““ , 0 , serv_id )

   and_branch                                     {(7) the cafeteria the customer takes a coffee}

      callwait bpm_assign_job ( “host customer“ , ““ , “HOSTESS“ , 0 , serv_id )

   join_branches               {the customer finished the coffee and we finished the job}

   {(8) the customer goes to the office to pay}

   callwait bpm_assign_job ( “payment and goodbye“ , ““ , “OFFICE“ , 0 , serv_id )

end_action

Those code lines above are the commands that we have to give to the “SERVICE_MANAGER.“ The coordinator agent for the above “car service facility.“ That is AutoScript. The Mykosmos/BOS suite‘s scripting language. Well, the script is not just like that (I cheated a little to ease the reader‘s understanding). In reality, the code is a mixture of human processes and computational procedures. That is an even better mixture of capabilities for the programmer.


Rafael J. Pavlides

Programmer

rafaelkosmosbos.com