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: 
**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'

```
The field zuonr references to an object it belongs to.
For example a purchase order.

Lets asume you pay a position of a purchase order.
A document in bkpf/bseg is created (and more).
Bseg-Zuonr contains the number of this purchase order position.

If you were allowed to change this field, you would destroy the referential integrity of the data. It would point to a purchase order position it was not created from or one that doesn't exist at all.

So from a business standpoint it makes no sense to ever change this field after it is created, therefore SAP will never allow to change it.