Была необходимость быстро проверить какие договоры находятся в какой группе и эту группу поменять. В групповых операциях данную операцию (
) не нашёл, в следствие чего родился следующий скрипт.
Код:
/*
* BGBilling 5.1
* Глобальный скрипт для работы с договорами по признаку групп.
*/
import bitel.billing.server.util.*;
import bitel.billing.server.contract.bean.ContractManager;
public void main( setup, con, conSlave )
{
g = 8; /* в данную переменную задаём искомую группу степенью двойки */
/* если групп больше одной, то степени суммируем*/
cm = new ContractManager(con);
out = new StringBuffer(); /* Для вывода отладочной информации */
for (cid = 1; cid < 9001 ; cid++) {
contract = cm.getContractByID(cid);
try {
groups = contract.getGroups();
if ( (groups & g) == g ) {
/*Здесь вставляем блок действий над договором */
out.append(cid + " = Kill all humans");
}
} catch (NullPointerException e) {
out.append("No groups detected on cid="+cid+". Skipping.");
}
if (out.length() > 0 ) {
print(out); /* Печать отладочной информации если надо*/
out.setLength(0);
}
}
}