Showing posts with label Invoice and billing. Show all posts
Showing posts with label Invoice and billing. Show all posts
In the previous article, "Episode 595: Alternate Method of Setting Expiration on Questionnaire", I have introduced "A method of setting a timer with Data setting formula".

In the article, I described a measure to enhance the visibility of the Workflow diagram by reducing the number of Steps, such as;

...In addition, "Service Task (Data assignment)" is capable of assigning a value to multiple Data Items at single Step. In case if multiple "Service Task (Data assignment)" are arranged consecutively, please consider consolidating them into one...

In the article, I described a measure to enhance the visibility of the Workflow diagram by reducing the number of Steps, such as;

...In addition, "Service Task (Data assignment)" is capable of assigning a value to multiple Data Items at single Step. In case if multiple "Service Task (Data assignment)" are arranged consecutively, please consider consolidating them into one...

As I might be asked by someone saying "So, how can I concretely do?", so let's try to rewrite the Workflow diagram of the past together actually.

[Billing-Payment Confirmation flow 1]


[Billing-Payment Confirmation flow 1 (Integrated Steps)]


Productivity Improvement by Automation of Steps

In the last article and one before the last, I introduced you a mechanism to control "PayPal billing system" from Workflow system.

In these mechanisms (Workflow Application), an automatic Step (Addon Service Task) is arranged in the middle of the flow diagram. That is, each time when a billing Issue arrives these Steps, the Workflow system transmits "Requests" such as
  • Generate "PayPal Invoice" (PayPal Create)
  • Transmit a "PayPal Invoice" (PayPal Send)
  • What is the settlement status? (PayPal Check)
In other words, "accounting works" such as "generation of electronic invoice", "transmission of electronic invoice", "confirmation of status of electronic invoice" have been made unmanned. (REST / OAuth2 communication with PayPal Invoicing API)

Today, not only the "payment system" (*1) as in this example, but also the operation of various information systems are automated, and the productivity is improved. For example, preservation of quotation to "Storage system" (*2), or management of product master data in "Spreadsheet / Data management system" (*3), are typical examples.

*1: PayPal, Stripe, etc. *2: Dropbox, Box, Google Drive, etc. *3 Google SpreadSheet, Kintone, etc.

<Setting screen: PayPal Create>

<Setting screen: PayPal Send>

<Setting screen: PayPal Check> 

The fact that the process owner only needs to set properties of the Addon automatic Step (programming knowledge is no longer needed) is also one of the reasons for popularization.

Until which stage of situation change you should make unmanned?

However, there are not only "advantages" that unmanning brings.

In the previous article, for example, it was a business flow that it continues confirming (keep on looping) until the status of electronic invoice turns to "PAID".

It sure is, there is no human cost on "confirmation work" alone since human does not intervene.

However, if an event such as "order cancellation" or "remittance with another settlement method" has occurred, it may be necessary to stop the Task of "shipping processing" in some cases. Or depending on circumstances, it may become necessary to modify the processing of "recording sales". Yet, as for the situation change which "influence degree × occurrence probability" is large, as a business process definition, I would like to make it "within the range of assumption" as much as possible, not leaving it as "unexpected".

In the following business process definition, "CANCELED status" (cancellation) which is relatively frequently occurring has been taken into consideration. That is, it is added devising that alert email to be sent when payment is refused.

[PayPal Invoice Issuance-Cancellation notification]

Automatize billing

In the previous article, we created a workflow in which "PayPal Invoice" is automatically sent, by placing two automatic Steps "PayPal Create" and "PayPal Send".

That is, "billing data" which has been checked and approved in the human Step is automatically POSTed to PayPal side and then "PayPal invoice" is generated. And at the specified time (send command is delivered), it will be sent by email. After all, since it can be defined with only "Addon Service Task" ("Script Task" is not used), it is attractive to be able to build an "automatic billing system" according to your business even if you had no programming knowledge.

However, it was "out of scope" for "work of checking whether 'PayPal invoice' was settled".

Automatize throughout deposit confirmation

In the following Business Process, an automatic Step called "PayPal Check" (Addon Service Task) has been added furthermore. In other words, this Workflow system is set to continuously check the settlement status for "PayPal invoice" that has been sent, periodically and automatically.

Specifically, an Issue which is staying at "(3. Unpaid retention)" will arrive at "PayPal Check", each time when
  • the accounting staff proceeds the Issue, or
  • retention time of 12 hours passes.
So, the settlement status is inquired via secure communication (OAuth 2 communication / PayPal Invoicing API). If the status is "settled (PAID)", it will store "Settled time" and "Settled amount", and the entire process end, without returning to "(3. Unpaid retention)".

[PayPal Invoice Issuance-PayPal Check]

Invoice directly connected to settlement

"PayPal Invoice" is an electronic invoice in the format of "Email".

From the viewpoint of the person who received the mail, it is very simple since you can click on the "View and Pay Invoice" button and immediately complete the settlement processing (card payment / PayPal account settlement). Of course, even when "in-house transfer to accounting personnel" is required, it is very easy to do, just a transfer operation on email client.

Also, viewing from person who issued the invoice, it is very easy since its procedures are only
  1. Login to PayPal and enter billing data
  2. (receive Settlement completion notification)
comparing to conventional "Business Process of invoicing in paper" took
  1. Create Excel data of invoice
  2. Printout the invoice
  3. Mail the invoice
  4. Confirm remittance in specified bank account

Moreover, we do not receive credit card information, so there is no "information leakage risk".

In recent years, it has also gained much attention on the aspects of "productivity improvement" and "teleworking environment improvement". (PayPal Invoice)

[Example of received email]

API connection to Workflow

"PayPal invoice" does not require introduction of particular system.

However, this ease of "you can send an invoice by logging in to PayPal" also brings new challenges such as "ambiguous approval by supervisor" and "difficult to make mistake checks by multiple people". Especially if a company emphasizes "Business Process", there is a possibility of being discussed as a problem on governance.

In the following Business Process definition example, we have realized the policy that

"to utilize PayPal invoice without logging in to PayPal"

by implementing API control from the Workflow system. That is, the data which have been approved and checked in the workflow system is automatically linked to PayPal side through the API, and the "command to send the invoice email" is also delivered from the Workflow system via the API. And all work records of "When and who did what" are all recorded on the Workflow system side.

* If it is a Cloud-based workflow "Questetra BPM Suite", it can be realized for free. (By importing the Business Process definition, you can build it in a few hours.)

[PayPal Invoice Issuance]

Season for reviewing Processes

April...

In Japan, it is a month when a new fiscal year starts.

Not only the accounting of the nation, accounting of local governments, new grades at school, etc. start, but also the ceremony for new entrants are conducted simultaneously in April. (About 20% of Japanese companies start their fiscal year in April)

It can be said that in Japan, April is 'the month when motivation for improving business processes increases' or 'perfect month for improving business process'.

Also in Questetra, Inc., which operates this blog, the amount of updating on Business Processes (number of version upgrades of Workflow Apps) will increase in April.

Dare to extend the time required

The business process introducing this time is a slightly strange improvement example that is "extending the time required at all Steps".

As a usual business improvement, it is normal to consider about improvement on "flows" or "data input screens" upon "dissatisfaction" and "challenges" that you are feeling during your daily work.
  • Automation of Steps
  • Addition of double-checking Step
  • Addition of guidance sentences
  • Implementation of handy button

And, in many cases, we will seek "a direction for a measure to shorten the total duration of work as much as possible".

However, in April, which is a break of the fiscal year, you might become wanting to deal with "inefficiencies you felt throughout the total counting work". In this business process (Workflow-App), it has been revised to stay in the middle of the way. (Addition of Human Process: "x. Retaining Rework")
Business process before improvement: Episode 511: Automatically Generate Transfer Slip File (Excel-CSV)

[Invoice Issuance-Retention]

Measurement of error rate

The invoice issuance process is one of the tasks in which mistakes are not allowed.

"Accounts receivable / sales" is recorded based on accurate billing data, and "savings accounts / accounts receivable" should be recorded upon collection afterword.

However, "redoing" occurs on the actual work site. For example, even in the same human process in Questetra, "Redo" occurred with a 2.8% chance as a result of last year.
  • Correction on "customer address and name"
  • Correction on "quantity and amount"
  • Correction on "issue date and due date"

Of course, the causes are various, including "unavoidable redoing".
  • Information was changed between order acceptance and billing (change of person in charge of customer)
  • The sales representative made a mistake in transcribing the contents of the order form
  • In the first place 'order data' was wrong

However, in any case, if the invoice (billing data) is "redoing the entire process again" when the customer receives it, in addition to the effort of redoing the bill approval processing, the data of the accounting system must also be manually corrected.

I must say such a "Redoing process from scratch" is "big loss".

Reworking and Sending back

In this business process improvement, the retaining Step of "x. Retain Sending back" of the Accounting manager is added, and progress toward the downstream process (data cooperation with the accounting system) is restrained.

That is, it will retain in the state that can be sent back to the most upstream, for a while (e.g. until the end of the month). (Reduce the risk of occurrence of "big loss" rather than increasing overall speed.)

Certainly, data such as 'sales' would like to be incorporated into the accounting system as soon as possible. I agree that it is a wonderful direction as a business management to further "accelerate monthly settlement of accounts" aiming for "daily settlement of accounts."

However, as in this example, "Business process that can absorb some extent of data modification by slowly flowing business Issues" can be another direction of business process improvement.

[Invoice Issuance-Retention:"1. Bill info entry" screen]

[Data Items list]


[Free Download]
<Similar Models>
<<Related Articles>>

[Japanese Entry (和文記事)]

Isolation of Accounting Steps

It is very convenient if prepared "PayPal Billing Flow" as "Independent Subroutine Process".

Since it can be called from various business flows in the Workflow system, the process owner can focus on the design and maintenance of the main business flow.

Even from the perspective of the Accounting department on the downstream side, they will be able to perform efficient business since they can handle multiple business flows without distinction. (However, involvement to upstream will tend to decrease.) In addition, there is a need that "want to manage and maintain centrally" in the accounting system (*) in which the changes in the past one or two years were extremely vigorous.

* ※ "Cloud Accounting", "Bank API", "Accounting BPO", etc.


Processing of PayPal Invoice

The following business process definition (Workflow / App) is "PayPal billing process" which automatically collaborates with PayPal.

Various requests are made from the Workflow system side via "PayPal REST API", specifically "PayPal Invoicing API". That is, it is a mechanism that
  • let PayPal generate 'PayPal Invoice'
  • let PayPal send "PayPal Invoice"
  • check payment status of "PayPal Invoice" against PayPal.
(The opportunity to login directly to PayPal will be reduced.)

[PayPal-Invoice]

Automation of billing

It will be very convenient if you can control "PayPal" as a billing system from the workflow system "Questetra".

For example, if you create a mechanism that automatically issues a "PayPal invoice according to delivery details" immediately after "product delivery flow" is completed, it is possible to prevent the occurrence of "billing mistake" or "billing omission". If the current situation is a billing operation that mails a "paper invoice", it is also possible to reduce all stamp fee, printing fee and office work labor costs to zero.

In the previous article, I introduced you mechanisms that automatically instructs PayPal "to generate invoices in PayPal" and "to send the invoice generated in PayPal further to customers".

Further automation

If you could automate
  • letting PayPal generate a "PayPal Invoice", and
  • letting PayPal send a "PayPal Invoice" via email,

I would like to further automate
  • confirming payment to PayPal. (Improve efficiency of debt collection business)

In this article, we will consider assembling the automatic Steps cleverly and making the "payment check flow" unmanned.

* Here, programming knowledge is required since we are going to use "Script Task" which is a type of automatic Step

[Entry reception system-PayPal billing-Payment confirmation]

PayPal as a Billing System

"PayPal Invoice" is very useful.

Just by logging-in to PayPal and entering "destination email address" and "details of sold item", anyone can easily send the invoice. It can be said that it is one of a few settlement methods that can flexibly deal with "a little consignment work" or "special discounts". It almost makes me think that procedures of shopping at EC site is rather more difficult. Moreover, there is no need to tell "credit card number" from the buyer to the seller.

However, if dozens of issuance must be, it will inevitably be troublesome. (Its "flexibility" serves harmful.)

If the billing contents were exactly the same, there was a function to process collectively, but if the contents are subtly different from each other, you have to set the billing information one by one. However, repetition of manual work falls into error, by all means.

Automate invoice creation and transmission

In the previous article (*), I introduced you "a mechanism to automatically generate a request that "Generate a PayPal invoice" and transmit it to the PayPal system.
* Episode 525: How to Send OAuth2 Request from Automatic Step

In this article, I would like to study further about "a mechanism to automatically send a request that "generate and send PayPal invoice to the buyer". (Programming knowledge is required)

[Entry reception system]

Japanese calendar text

There are many cases in Japan that use "Japanese calendar" instead of "Western (Gregorian) calendar".

This year is "2017" as well as "Heisei 29".

In other words, there are many cases where Date type data such as "2017-03-13" should be displayed as "March 13, Heisei 29" in prints and email texts. In the article (*) about one year ago, I introduced you the Japanese calendar conversion using the [Script Task], the automatic step. (Automatic conversion of Issue data flowing in the Cloud-based Workflow "Questetra BPM Suite")

Episode 467: Certificate Issue Date on Auto-generated PDF in Japanese Era Name (2016-01-25)

Script step and Service step

However, as of version 11.1 or later (2016-09-05) of the Cloud-based Workflow "Questetra BPM Suite", it is possible to add arbitrary [Service step] by "Service definition file" (add-on XML).

That is, if you use [Service step] which performs Japanese calendar conversion, you do not need to use [Script step] (which requires programming knowledge).

[Certificate Issuance-Japanese Calendar]

Automation with server side JavaScript

In the last article (*), I mentioned that "automatic Step of Questetra BPM Suite can implement (not only simple numerical calculation) OAuth2 communication".
* Episode 524: Automation of Work with Server-side JavaScript

Therefore, in this article, I would like to briefly summarize about "what kind of external service is specifically possible with OAuth2 communication" and "what kind of programming is required specifically". (In the viewpoint of requesting from the workflow system side.)

What is OAuth2 communication

OAuth is a "scheme for authorizing requests to servers".

Reference) What is "OAuth", the Cloud Technology which Everyone should Know?

Since OAuth2 first appeared in 2012, APIs of many "resource servers", such as Google Drive and Dropbox, are now compatible with "OAuth2 access". That is, the external system can throw various "Reference request" and "Update request" to "resource server". (RFC6749/6750)

In the cloud-based Workflow "Questetra BPM Suite", it is possible for an automatic Step placed in a business process definition to behave as an "external system" (OAuth2 client). In other words, you can set so that the following requests are automatically executed each time an Issue reaches the automatic Step (Script Task / Service Task).

  • Script Task: a Step in which a Business designer can set server-side JavaScript (Communication using HttpClientWrapper can also be implemented) M230
  • Service Task (Addon): Step which packaged Script Task. Only configure setting is allowed for Business designer. M415 M416
Reference)


How to get access token

"Access token" is required for such request communication.

"Access token" is "a proof that it is a request authorized by the owner of the resource", and the entity is a string of from about several tens to 200 characters. However, the access token acquisition method differs depending on "resource server".

As main method, there are
  • A. Let the owner click on "grant button" and then automatically obtain. (Authorization Code Grant)
  • B. Set secret credentials, then retrieve automatically (Client Credentials Grant)
  • C. Set the access token itself (e.g. when an Access Token without expiration date is possible)

However, it varies depending on the type or characteristic of data managed by "resource server".

Caution) Even with the OAuth 2 authorization method that the destination API can implement, there might be cases where automatic communication can not be set depending on implementation restrictions (Questetra side) regarding "HTTP header" and "Content - Type format".

[Invoice Submission]
"It's so troublesome to enter billing data..."

Logs such as bank deposits and withdrawals and card payments have become "automatic journalizing", and "accounting input work" became quite easier compared to before.

However, in terms of "sales" in particular, it is too late to wait for the timing of "deposit". After all, it is desirable to record it as "sales as accounts receivable" at the time of "invoice" issuance... Rather, it's a must.
  • 2016 - 11 - 22: Accounts receivable 120,000 / Sales 120,000 = Website creation (for company A)
  • 2016 - 12 - 31: Saving deposit 120,000 / Accounts receivable 120,000 = Website creation (for company A)

Incidentally, on the contrary, there are cases where cannot include in "sales" at the time of issuing "Invoice" (even at the time of "deposit").
  • 2016 - 12 - 31: Saving deposit 120,000 / Advance received 120,000 = Maintenance 2017 - 01 - 2017 - 12 (for Company A)
  • 2017-01-01: Advance received 10,000 / sales 10,000 = 2017-01 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-02-01: Advance received 10,000 / sales 10,000 = 2017-02 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-03-01: Advance received 10,000 / sales 10,000 = 2017-03 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-04-01: Advance received 10,000 / sales 10,000 = 2017-04 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-05-01: Advance received 10,000 / sales 10,000 = 2017-05 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-06-01: Advance received 10,000 / sales 10,000 = 2017-06 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-07-01: Advance received 10,000 / sales 10,000 = 2017-07 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-08-01: Advance received 10,000 / sales 10,000 = 2017-08 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-09-01: Advance received 10,000 / sales 10,000 = 2017-09 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-10-01: Advance received 10,000 / sales 10,000 = 2017-10 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-11-01: Advance received 10,000 / sales 10,000 = 2017-11 of Maintenance 2017-01 to 2017-12 (for company A)
  • 2017-12-01: Advance received 10,000 / sales 10,000 = 2017-12 of Maintenance 2017-01 to 2017-12 (for company A)

The creation method and creation timing of so-called "transfer slips" (transfer records) varies depending not only on the type of industry but also on company policy. Even so, the work itself should certainly be "automated".

In the following Workflow, at the moment when the "Invoice" is approved by the supervisor,
  • Receipt PDF will be emailed to he customer,
  • Multiple line "transfer records" are automatically calculated
  • The import file is automatically generated.

Accounting staff can finish "input work" by only uploading the automatically generated Excel-CSV file to the accounting system.

[Invoice Issuance flow]
"Want to manage the Customer Master in kintone!"

"kintone" is a Cloud-based Database that is popular in Japan. Comparing to the "Google Spreadsheet" which is likewise a simple Cloud-based database, it is easy to use for beginners of the Cloud computing even though it has some functional limitation.

And "Customer management" is one of the most common kintone use applications.


The following Workflow is a synchronization process for updating "Customer Master on the Workflow platform" in referencing "Customer Master on kintone". It is exactly the same flow of the previous article "Episode 502: "Master Reference" is for Eliminating the Fluctuation!". Automatically runs at five o'clock in every morning.

The only difference is that it refers to "the Master on kintone", instead of "the Master on Google SpreadSheet".

[Customer Master Synchronization-kintone]
"Fluctuation" occurs frequently to corporate name!

Destination data in a Quotation or an Invoice differs like "Nippon Telegraph and Telephone Corporation" or "Nippon Telegraph and Telephone Corp." or "NTT Corporation" ... Yet, the SELECT method must be adopted for an input form in Quote creation flow or Billing flow (instead of TEXT form). Otherwise, data that are not worthy to be aggregated would be accumulated, on and on.

Even though we manage so-called "Customer Master" in a Spreadsheet...


In the following Workflow, it is devised that a "Customer Master for Workflow platform" to be updated automatically with data in a Google Spreadsheet. The "Customer Master" will be maintained to be always up-to-date.

* The Auto-step (Service Task) referred to [Sheet reference] which is utilized here, will become available by feature expansion with [Addon XML] beforehand. (v11.1: 2016-09-05)

[Customer Master Synchronization]
In many companies, "Client lists" are managed with spreadsheet software.

And I just think that "Google SpreadSheet" and "kintone", which are Cloud-based database, are utilized more and more now, comparing to 10 years ago when "Excel files" had been created as a matter of course. After all, at a reasonable price (or even for Free), you can enjoy the benefit of convenience,such as
  • Accessible from anywhere at any time
  • Minimize the risk of data lost
  • No need to duplicate data to carry
  • Access logs are preservable depending on the service plan
It would be grateful especially for the small and medium-sized and micro enterprises.

[API communication]

Moreover, you will be able to build a mechanism which an external system to refer a "Client list", using Cloud-based database. (API function: Application Programming Interface)

The following Workflow is an automated flow for retrieving a "Client list on Google SpreadSheet" into Workflow platform. In this example, "Client list" will be automatically synchronized every night at one o'clock. (The flow itself is almost the same as Synchronization with kintone which I introduced previously.)

[Client master Synchronization - SpreadSheet Integration]
"Are you transcribing the banking logs?"

Every bank in Japan give you a booklet referred to "Passbook". When you insert it into an ATM, all the records of deposit and withdrawal will be printed on it fine and clear. However, as long as the "Passbook" is a paper booklet, people who are accessible to the information in it are limited. Yet, it is cumbersome to enter the data into "Bank book.xis" manually.

The following Business flow is an operation of exporting account activity to Google SpreadSheet.

It is a mechanism that automatically appending to specified SpreadSheet when importing "Account activity" which can be obtained through online service provided by the bank. In this example, a Script has been set to retrieve a tab delimited file in a format referred as "ANSER-API" which is widely used in Japanese Banks.

I would call this as "Online Passbook"... Isn't it convenient?


[Activity Log Registration]

I introduced a fully automated Workflow that is

> to update the Workflow platform common "Client Master" by receiving JSON response from kintone API,

in the last post.

In this post, I would like to introduce how to

> Update the "Client Master" in kintone by sending JSON data to kintone API.

More specifically, it is a mechanism that suppliers (customer code and customer name) is added to the "customer master" on the kintone, upon the moment when a start of trading in the "Credit Management Workflow" has been approved.

After all, it is configured that JSON string such as

{
  "app": "3",
  "record": {
    "customerCode": {
      "value": "9999999999999#www.example.com"
    },
    "customerName": {
      "value": "XYZ Inc"
    }
  }
}

POSTed to kintone API at the downstream of the Workflow.

* JSON: JavaScript Object Notation (Mass of data in which the pair of "key" and "value" have been enumerated)

[Credit Management]
"Customer list" is typical of "database". (Weather managed in paper or in computer.)

Data stored in "Database" is roughly classified into
  • A) Master information (Master type data)
    • Product master
    • Client master
    • Price list, etc.
  • B) Log information (Transaction type data)
    • Payment history
    • Orders record
    • Access log, etc.
And in day-to-day business, there are many occasions that you want to refer to data which is classified in A), master type data.


The following Business Process is a mechanism to synchronize "Client Master data" in the Workflow environment with client master information which is managed in "kintone", a Cloud Database, on a daily basis. (It may be considered as a Batch processing.) It is excellent for not only all the Steps having been automated, but also being capable of manually synchronization at any time.

After all, it becomes possible to refer the latest "Client Master" in a variety of business, such as "Estimate Process", "Order report Process", or "Billing Process". You might be able to eliminate so-called "name identification". (Moreover, it also has the meaning of auto-backup of data in kintone.)

[Client Master Synchronization]

It is no longer an uncommon that letting a Workflow system processing, such as;
  • "Auto-calculation" for consumption tax",
  • "Auto-generation" of invoice PDF,
as the sophistication of information system progresses.

You can reduce mistakes and reworkings greatly by automation of intermediate steps. And also it leads to a shortening the required time for the entire process.

However, on the other hand, excessive automation will result incomprehensible of the mechanism, and become incapable of corresponding upon occurrence of troubles.

All the more reason, when it includes auto-steps which error occurrence rate is not negligible, such as
  • "Auto data retrieving" using communication network
  • "Auto data storage" using communication network
  • "Script Step" with lots of if statement
  • "Script Step" including decimal calculation
(Actually, it might be a great agenda in "era of utilizing Cloud.)

[Invoice Issuance-Sampling check]

Want to automate "Prorated billing".

Rent, Water charge, Cloud service... In any field, "invoicing process" is a very important business. No mistake is allowed. Even though a human would do the credit investigation and address input, I want to let a computer do the calculation of "prorating".
  • Indeed, a computer is a machine.
  • It makes no mistake.
  • And it is fast.
But on the other hand, it also has stupidity such as, one third multiplied by three equals "0.999". There is not much difference about this aspect between a calculator and a supercomputer. (Oh, I hear voices of objection from users of J programming language, etc.)


In the following Workflow, prorating calculation for "a service which monthly fee is 10,000 JPY" is automated.

It is a simple sample flow that, inputting information of "used X days in month MM of year YYYY", then automated until "generating of invoice PDF".

In this example, as obvious on the flow chart, even an "Approval Step" or a "Send-back Step" is not arranged for the sake of simplicity. A very plane Business Process. Therefore, it is useful as a base for the development of applied system, such as "printing out automatically" or "automatically transmit email with attachment".

[Invoice Issuance flow]

I wonder how many characters a Japanese person can read and write.

We have 48 pairs of "hiragana" and "katakana" (syllabaries), but the number of "kanji" (logographic) is counted to approximately 10 thousand. It is also said 30 thousand including characters that are not used in day-to-day life. Japanese people can describe any species of fish in one character. Our feeling for "limitation of 140 characters" of Twitter is greatly different from western people. (They say Chinese has 80 thousand.)

And in Japan, a lot of time is devoted to "learning kanji" in school education.

Almost Japanese kids would become able to read and write approx. 10 thousand characters through 6 years of elementary school. Then they learn another 10 thousand in 3 years of junior high school, and in high school and college or university, they encounter more complicated kanji. Eventually, general member of society is said to be able to effortlessly read about 3000 kinds of kanji. ( Even I probably am able to WRITE kanji barely 10 thousand of them, honestly.)

Although people who were born and raised in Japan would not care, this kind of story goes down well for European language speakers.

Well, such Japanese people have been struggling with "Computer processing for Japanese language" in various ways.

Not only the disadvantage of "too many characters", we encountered troubles from various causes, such as, "no word separator (space)", or "Several readings for the same character", or "Many characters in different meaning exist for the same reading", or even "the shape of the same character varies according to vertical or horizontal writing."

The following Workflow is for testing of the outputs to PDF.

Even though more than 10 thousand characters are designed in Fonts in Japanese, there are possibilities of occurrences of trouble that "particular character does not exist in the Font" upon embedding business data onto [Template PDF] automatically at a Step in the middle of Workflow. This is a Testing Flow to detect such a trouble in advance. The most important point is whether "Font data" has been embedded in the [PDF Template] file or not.

[PDF generation test]