저장버튼 제어기능(update,delete)

This commit is contained in:
kjs
2025-09-18 12:02:48 +09:00
parent 29f506fb27
commit f5caa7127c
4 changed files with 525 additions and 170 deletions

View File

@@ -481,6 +481,19 @@ export class DynamicFormService {
// 트리거 오류는 로그만 남기고 메인 업데이트 프로세스는 계속 진행
}
// 🎯 제어관리 실행 (UPDATE 트리거)
try {
await this.executeDataflowControlIfConfigured(
0, // UPDATE는 screenId를 알 수 없으므로 0으로 설정 (추후 개선 필요)
tableName,
updatedRecord as Record<string, any>,
"update"
);
} catch (controlError) {
console.error("⚠️ 제어관리 실행 오류:", controlError);
// 제어관리 오류는 로그만 남기고 메인 업데이트 프로세스는 계속 진행
}
return {
id: updatedRecord.id || updatedRecord.objid || id,
screenId: 0, // 실제 테이블에는 screenId가 없으므로 0으로 설정
@@ -546,6 +559,22 @@ export class DynamicFormService {
console.error("⚠️ 조건부 연결 트리거 실행 오류:", triggerError);
// 트리거 오류는 로그만 남기고 메인 삭제 프로세스는 계속 진행
}
// 🎯 제어관리 실행 (DELETE 트리거)
try {
if (result && Array.isArray(result) && result.length > 0) {
const deletedRecord = result[0] as Record<string, any>;
await this.executeDataflowControlIfConfigured(
0, // DELETE는 screenId를 알 수 없으므로 0으로 설정 (추후 개선 필요)
tableName,
deletedRecord,
"delete"
);
}
} catch (controlError) {
console.error("⚠️ 제어관리 실행 오류:", controlError);
// 제어관리 오류는 로그만 남기고 메인 삭제 프로세스는 계속 진행
}
} catch (error) {
console.error("❌ 서비스: 실제 테이블 삭제 실패:", error);
throw new Error(`실제 테이블 삭제 실패: ${error}`);
@@ -845,8 +874,19 @@ export class DynamicFormService {
) {
console.log(`📊 실행된 액션들:`, controlResult.executedActions);
}
// 오류가 있는 경우 경고 로그 출력 (성공이지만 일부 액션 실패)
if (controlResult.errors && controlResult.errors.length > 0) {
console.warn(
`⚠️ 제어관리 실행 중 일부 오류 발생:`,
controlResult.errors
);
// 오류 정보를 별도로 저장하여 필요시 사용자에게 알림 가능
// 현재는 로그만 출력하고 메인 저장 프로세스는 계속 진행
}
} else {
console.warn(`⚠️ 제어관리 실행 실패: ${controlResult.message}`);
// 제어관리 실패는 메인 저장 프로세스에 영향을 주지 않음
}
// 첫 번째 설정된 제어관리만 실행 (여러 개가 있을 경우)