Question: I'm developing a server-side RESTful application which serves json data for its client applications. And I have to test so many various json outputs.
Each json has many properties and their validation methods are different like below a sample json.

So such my use-case, do you know good libraries or web services to test json data flexibly?

```
{
  "system": { // data structure validation
    "time": 1234566, // data type validation
    "version": "0.0.1" // string matching validation
  },
  "app": { // data structure validation
    "id": "1234", // string matching validation
    "command": "do something", // string matching validation
    "data": { // data structure validation
      "hoge": "xxx", // data type validation
      "fuga": 123 // data type validation
    }
  }
}

```

Answer: 
As author has no time to confirm, I can do this for him as I just tested this case.
If we pass to FM all parameters from its signature the update runs smoothly. For example, like this:

```
DATA: lt_bkdf TYPE TABLE OF bkdf,
      lt_bkpf TYPE TABLE OF bkpf,
      wa_bkpf TYPE bkpf,
      lt_bsec TYPE TABLE OF bsec,
      wa_bseg  TYPE bseg,
      lt_bsed TYPE TABLE OF bsed,
      lt_bseg TYPE TABLE OF bseg,
      lt_bset TYPE TABLE OF bset.

wa_bkpf-mandt = sy-mandt.
wa_bkpf-bukrs = '5900'.
wa_bkpf-gjahr = gjahr_import.
wa_bkpf-belnr = belnr_import.
wa_bkpf-bktxt = 'Batch'.
APPEND wa_bkpf TO lt_bkpf.

wa_bseg-mandt = sy-mandt.
wa_bseg-bukrs = '5900'.
wa_bseg-gjahr = gjahr_import.
wa_bseg-belnr = belnr_import.
wa_bseg-buzei = '1'.
wa_bseg-zuonr = '20151131'.
APPEND wa_bseg TO lt_bseg.

  CALL FUNCTION 'CHANGE_DOCUMENT'
    TABLES
      t_bkdf           = lt_bkdf
      t_bkpf           = lt_bkpf
      t_bsec           = lt_bsec
      t_bsed           = lt_bsed
      t_bseg           = lt_bseg
      t_bset           = lt_bset
      .

COMMIT WORK.

```

All FM table parameters except the last one are **mandatory**.
**Do not use this `FM`**

```
CALL FUNCTION 'CHANGE_DOCUMENT' 

```

This `FM` is changing all other fields to initial if not provided.

---

```
CALL FUNCTION 'FI_DOCUMENT_CHANGE'

```

It seems that this `FM` cannot be used to change line item which has account type (`BSEG-KOART`) - 'S' (GL Account).

---

Try this `FM`:

```
'FI_ITEMS_MASS_CHANGE'

```