import.discard
Drop a held Import proposal.
Drops a held Import proposal without applying it. Proposals are also dropped when applied, when 16 newer ones push them out and when the book closes, so discarding is only for tidiness. It changes nothing in the book.
Examples
Example: with a new, empty book open as book.gnucash.
JSON-RPC
Request:
{"jsonrpc":"2.0","id":1,"method":"import.discard","params":{"proposal":"imp-999999"}}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": 2000,
"message": "…",
"data": {
"kind": "importProposal",
"id": "imp-999999",
"help": "error/not-found"
}
}
}
Command line
red-ale exec --book book.gnucash import.discard '{"proposal":"imp-999999"}'
It fails with exit status 2, printing on standard error:
{
"error": {
"code": 2000,
"message": "…",
"data": {
"kind": "importProposal",
"id": "imp-999999",
"help": "error/not-found"
}
}
}
MCP tool call
Tool call:
{"name":"import.discard","arguments":{"proposal":"imp-999999"}}
Result:
{
"isError": true,
"structuredContent": {
"error": {
"code": 2000,
"name": "not-found",
"message": "…",
"data": {
"kind": "importProposal",
"id": "imp-999999",
"help": "error/not-found"
}
}
}
}
A held proposal is dropped, and is then gone:
Example: with a new, empty book open as book.gnucash.
JSON-RPC
Request:
{"jsonrpc":"2.0","id":1,"method":"import.preview","params":{"format":"csvPrices","files":[{"text":"2024-06-28,1.0850\n"}],"layout":{"format":"csv","separators":",","skipStartLines":0,"dateFormat":"y-m-d","currencyFormat":"period","encoding":"utf-8","columns":["Date","Amount"],"fromCommodity":"CURRENCY::EUR","toCurrency":"USD"}}}
Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"id": "imp-1",
"…": "…"
}
}
Request:
{"jsonrpc":"2.0","id":2,"method":"import.discard","params":{"proposal":"imp-1"}}
Response:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"discarded": true
}
}
Request:
{"jsonrpc":"2.0","id":3,"method":"import.apply","params":{"proposal":"imp-1"}}
Response:
{
"jsonrpc": "2.0",
"id": 3,
"error": {
"code": 2000,
"message": "…",
"data": {
"kind": "importProposal",
"id": "imp-1",
"help": "error/not-found"
}
}
}
Command line
red-ale exec --book book.gnucash --script - <<'EOF'
import.preview {"format":"csvPrices","files":[{"text":"2024-06-28,1.0850\n"}],"layout":{"format":"csv","separators":",","skipStartLines":0,"dateFormat":"y-m-d","currencyFormat":"period","encoding":"utf-8","columns":["Date","Amount"],"fromCommodity":"CURRENCY::EUR","toCurrency":"USD"}}
import.discard {"proposal":"imp-1"}
import.apply {"proposal":"imp-1"}
EOF
It fails with exit status 2, printing on standard error:
{
"error": {
"code": 2000,
"message": "…",
"data": {
"kind": "importProposal",
"id": "imp-1",
"help": "error/not-found"
}
}
}
MCP tool call
Tool call:
{"name":"import.preview","arguments":{"format":"csvPrices","files":[{"text":"2024-06-28,1.0850\n"}],"layout":{"format":"csv","separators":",","skipStartLines":0,"dateFormat":"y-m-d","currencyFormat":"period","encoding":"utf-8","columns":["Date","Amount"],"fromCommodity":"CURRENCY::EUR","toCurrency":"USD"}}}
Result:
{
"structuredContent": {
"id": "imp-1",
"…": "…"
}
}
Tool call:
{"name":"import.discard","arguments":{"proposal":"imp-1"}}
Result:
{
"structuredContent": {
"discarded": true
}
}
Tool call:
{"name":"import.apply","arguments":{"proposal":"imp-1"}}
Result:
{
"isError": true,
"structuredContent": {
"error": {
"code": 2000,
"name": "not-found",
"message": "…",
"data": {
"kind": "importProposal",
"id": "imp-1",
"help": "error/not-found"
}
}
}
}
Effect: read.
Params
The params of import.discard.
proposal(string, required): The proposal's ID.
Result
The result of import.discard.
discarded(boolean, required): Always true.