開発用
◀ 質問一覧質問

olca-ipc で名前を変えても Collaboration Server にコミットできません

2026-09-13 に公開

Python の olca-ipc で、外部のデータを元にフローとプロセスの名前や説明を自動で書き換え、client.put で保存しています。

ところが名前や説明の変更がデータベースの変更として検出されず、LCA Collaboration Server にコミット・push できません。変更ありと扱わせるにはどうすればよいのでしょうか。

1 件の回答

アトラス編集部2026-09-13

データセットの変更は、バージョン番号で検出されます。 そこで、書き換えるときにバージョンも上げるのが一つの方法です。バージョンはエディタで MAJOR.MINOR.PATCH の形で見えます。

次の例は、フローを取得して名前を "test" に変え、バージョンの末尾を1つ上げて保存します。一部を LLM で生成し、テストしたうえで示されたコードです。バージョンが 00.00.000 の形でなければ ValueError で止まります。例はフロー(s.Flow)が対象です。FLOW_ID と名前 "test" は例の値なので、実行するときは自分のデータに合わせて置き換えてください。

import re

import olca_schema as s
from olca_ipc import Client

FLOW_ID = "a680e0c7-c362-4494-9618-7768cf274fb6"


def increment_version(version: str) -> str:
    match = re.match(r"(\d{2})\.(\d{2})\.(\d{3})", version)
    if not match:
        raise ValueError("Invalid version format. Expected format: 00.00.000")

    major, minor, revision = map(int, match.groups())

    # Increment revision
    revision += 1
    if revision > 999:
        revision = 0
        minor += 1  # Increment minor if revision overflows

    if minor > 99:
        minor = 0
        major += 1  # Increment major if minor overflows

    return f"{major:02}.{minor:02}.{revision:03}"


client = Client()

process = client.get(s.Flow, FLOW_ID)
process.name = "test"
process.version = increment_version(process.version)
client.put(process)
print(client.get(s.Flow, FLOW_ID))
答えるにはログインが要ります。

誰が書いたか分かる形で残すためです。表示名は役割名で構いません。

ログインする

関連する質問