У меня проблема с удалением ссылок в исходном модуле, где я нахожусь в эксклюзивном моде редактирования. Эта проблема возникает ТОЛЬКО, когда я удаляю исходящую ссылку из целевого объекта и сохраняю целевой модуль. Прежде чем удалить ссылку из исходного объекта в исходном модуле, я убедился, что текущий модуль является исходным модулем. после запуска кода функция удаляет ссылку в исходном модуле, которую я вижу на другом экране, и останавливается на функции (строке) flushdeleting и выводит сообщение об ошибке, как показано ниже:
-r-e-dxl: (строка 1930) нельзя удалить объект: модуль должен быть открыт для монопольного редактирования.
Очень странный! У меня есть доступ для редактирования....что здесь происходит!!!!
Вот функция обратного вызова для кнопки удаления ссылки.
//******************************************************************************************
// Delete link from DAR to PII
//******************************************************************************************
void DeletelinksDARtoPII() {
string darID, piiID = null
Object TrgObj, SrcObj, PIIobj
int srcAbsNo, tagtAbsNo
int QRValNotEmptyCnt = 0
Link lnkTotargetMod
bool foundtheLink = false
bool foundLinktoPII = false
bool accessOkay = true
bool darobjdeleted = false
darID = get(UpdatePIIDARIDTextBox)
piiID = get(UpdatePIIObjID )
//print (current Module)."Description" "*********\n"
if(null(darID) or null(piiID )){
ack "Could not find a link for the pii Object\n"
return
}
darMod = edit(DARMpath,false)
if (!isEdit(darMod)) {
ack "Could not open the DAR module in exclusive access.\n Please try again or contact Database Manager:\n"
return
accessOkay = false
}
piiMod = edit(PIIMpath,false)
if(!isEdit(piiMod)){
ack "Could not open the PII module in exclusive access.\n Please try again or contact Database Manager:\n"
return
accessOkay = false
}
//print "srcID=" srcID "\n"
srcAbsNo = FindAbsNo(darID)
//print "before ...........srcAbsNo=" srcAbsNo "\n"
SrcObj = object(srcAbsNo, darMod)
int PIIAbsNo = FindAbsNo(piiID)
//print"SrcObj=" identifier(SrcObj) "\n"
for lnkTotargetMod in SrcObj -> DartoPiiLinkMpath do{
trgModRCA=read(fullName(target(lnkTotargetMod)), false)
PIIobj = target(lnkTotargetMod)
foundLinktoPII = true
}
current = darMod
//print (current Module)."Description" "\n"
print "foundLinktoPII=" foundLinktoPII "\n"
if(foundLinktoPII){
srcAbsNo = FindAbsNo(darID)
//print "srcAbsNo=" srcAbsNo "\n"
SrcObj = object(srcAbsNo, darMod)
darMod = current
current = SrcObj
darMod = edit(DARMpath,false)
//print"daridentifier= " identifier(SrcObj) "\n"
print"****cannot delete the link************\n"
print (current Module)."Description" "^^^^^^^^^^^^^^^\n"
SrcObj."PII Selection Status" = "Not Selected"
string lnkstat = canDelete(lnkTotargetMod)
print lnkstat "********\n"
if(canDelete(lnkTotargetMod)){
delete lnkTotargetMod
flushDeletions
}
else{
//print lnkstat "\n"
print"****cannot delete the link************\n"
}
save(darMod)
refresh(darMod)
downgrade darMod
Refresh_DARM_ListView
darobjdeleted = true
}
спасибо, ФЗ [email protected]