Pesquisar

Artigo
· 16min atrás 2min de leitura

Temp Files and Singletons: Cleaning Up After Yourself

There's a pattern I've encountered several times where I need to use a temp file/folder and have it cleaned up at some point later.

The natural thing to do here is to follow the patterns from "Robust Error Handling and Cleanup in ObjectScript" with a try/catch/pseudo-finally or a registered object to manage cleanup in the destructor. %Stream.File* also has a "RemoveOnClose" property that you can set - but use with care, as you could accidentally remove an important file, and this flag gets reset by calls to %Save() so you'll need to set it back to 1 after doing that.

There's one tricky case, though - suppose you need the temp file to survive in an enclosing stack level. e.g.:

ClassMethod MethodA()
{
    Do ..MethodB(.filename)
    // Do something else with the filename
}

ClassMethod MethodB(Output filename)
{
    // Create a temp file and set filename to the file's name
    Set filename = ##class(%Library.File).TempFilename()
    
    //... and probably do some other stuff
}

You could always pass around %Stream.File* objects with RemoveOnClose set to 1, but we're really just talking about temp files here.

This is where the concept of a "Singleton" comes in. We have a base implementation of this in IPM in %IPM.General.Singleton which you can extend to meet different use cases. The general behavior and use pattern is:

  • In a higher stack level, call %Get() on that class and get the one instance that will also be obtainable by calls to %Get() at lower stack levels.
  • When the object goes out of scope in highest stack level that uses it, the cleanup code runs.

This is a bit better than a % variable because you don't need to go checking if it's defined, and it also survives argumentless NEW at lower stack levels through some deep object trickery.

On to temp files, IPM also has a temp file manager singleton. Applying to this problem, the solution is:

ClassMethod MethodA()
{
    Set tempFileManager = ##class(%IPM.Utils.TempFileManager).%Get()
    Do ..MethodB(.filename)
    // Do something else with the filename
    
    // The temp file is cleaned up automatically when tempFileManager goes out of scope
}

ClassMethod MethodB(Output filename)
{
    Set tempFileManager = ##class(%IPM.Utils.TempFileManager).%Get()
    // Create a temp file and set filename to the file's name
    Set filename = tempFileManager.GetTempFileName(".md")
    
    //... and probably do some other stuff
}
Discussão (0)1
Entre ou crie uma conta para continuar
Discussão
· 22min atrás

How do you like to build your AI solutions with InterSystems IRIS?

Hi,

We're working on new capabilities to help you build Agents and AI applications faster with InterSystems IRIS. In order to better understand which entry points and development methodologies would help you most, we've created this brief survey: Building AI solutions with InterSystems IRIS. 

Filling it in should not take much more than 5 minutes, and your feedback on this exciting topic will help us fine tune our designs and prioritize the right features.

Thanks in advance!
benjamin
 

Discussão (0)1
Entre ou crie uma conta para continuar
Anúncio
· 3 hr atrás

¡Compartid vuestros puntos de vista!

Valoramos vuestros comentarios sobre los recursos de aprendizaje que utilizáis para sacar el máximo partido a los productos de InterSystems. Tanto si habéis hecho cursos a vuestro ritmo o en directo, como si habéis consultado la documentación o conseguido una certificación, ¡nos encantaría saber vuestra opinión!

How can InterSystems improve its learning resources in 2026? Take the survey.

 

Decidnos qué recursos de aprendizaje habéis utilizado y qué os ha resultado útil. Vuestras opiniones nos ayudarán a mejorar nuestras propuestas en 2026 y en adelante.

La encuesta finaliza el 19 de diciembre de 2025.

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· 3 hr atrás

Zen reports only one row filled in the table

Hello. Here is   XData ReportDefinition

/// XML that defines the contents of this report.
XData ReportDefinition [ XMLNamespace = "http://www.intersystems.com/zen/report/definition]
{
<report xmlns="http://www.intersystems.com/zen/report/definitionname='bills' runonce="true">
<attribute name='runTime' expression='$ZDT($H,3)/>
    <attribute name='runBy' expression='..GetUserName()/>
    <attribute name='author' expression='..ReportAuthor'/>
<group name='bills' OnCreateResultSet="CreateRS">
<parameter name="MonthDt" expression="..Month"/>
<parameter name="Company" expression="..Company"/>
<parameter name="EnterpType" expression="..EnterpType"/>
<!--<group name='bills' sql="SELECT TOP 200 PayerCod FROM zui.PayerTotalData1 WHERE MonthDt='202510' ORDER BY PayerCod">--> <group name='bill' breakOnField="PayerCod">
<!--<element name="Name" field="Name" expression='..GetName(%val)' />-->
<!--<attribute name='PayerCod' field='PayerCod' />-->
<element name="PayerCod" field="PayerCod" expression='"РАХУНОК № "_(+%val)/>
<element name="Company" field="PayerCod" expression='"Виконавець: "_..GetCompany(%val)'/>
<element name="CompanyAddress" field="PayerCod" expression='"Адреса: "_..GetCompanyAddress(%val)'/>
<element name="Name" field="PayerCod" expression='"Платник: "_..GetPayerName(%val)'/>
<element name="PayerContractInfo" field="PayerCod" expression='..GetPayerContractInfo(%val)'/>
<element name="CompanySettlementAcc" field="PayerCod" expression='..GetCompanySettlementAcc(%val)/>
<element name="CompanyMfo" field="PayerCod" expression='..GetCompanyMfo(%val)/>
<element name="CompanyEdrpou" field="PayerCod" expression='..GetCompanyEdrpou(%val)/>
<element name="CompanyAbonSettlementAcc" field="PayerCod" expression='..GetCompanyAbonBankData(%val, 1)/>
<element name="CompanyAbonMfo" field="PayerCod" expression='..GetCompanyAbonBankData(%val, 2)/>
<element name="CompanyAbonEdrpou" field="PayerCod" expression='..GetCompanyAbonBankData(%val, 3)/>
<element name="Address" field="PayerCod" expression='..GetAddress(%val)/>
<element name="SettleAccount" field="PayerCod" expression='..GetPayerSettleAccount(%val)/>
<element name="CodEdrpou" field="PayerCod" expression='..GetCodEdrpou(%val)/>
<element name="TitleDebtName" field="PayerCod" expression='..GetTitleDebtName(%val)/>
<element name="DateDebt" field="PayerCod" expression='..GetDateDebt(%val)/>
<element name="Borg1" field="PayerCod" expression='..GetBorg1(%val)/>
<element name="DateAccrual" field="PayerCod" expression='..GetDateAccrual(%val)/>
<element name="SumAccrual" field="PayerCod" expression='..GetSumAccrual(%val)/>
<element name="HeatHotwaterVAT" field="PayerCod" expression='..GetHeatHotwaterVAT(%val)/>
<element name="OpGvPay" field="PayerCod" expression='..GetOpGvPay(%val)/>
<element name="TitleDebtName2" field="PayerCod" expression='..GetTitleDebtName2(%val)/>
<element name="Borg1Abon" field="PayerCod" expression='..GetBorg1Abon(%val)/>
<element name="SumAccrualAbon" field="PayerCod" expression='..GetSumAccrualAbon(%val)/>
<element name="AbonpayVAT" field="PayerCod" expression='..GetAbonpayVAT(%val)/>
<element name="PaymentSumAbon" field="PayerCod" expression='..GetPaymentSumAbon(%val)/>
<element name="Borg2" field="PayerCod" expression='..GetBorg2(%val)/>
<element name="Borg2Abon" field="PayerCod" expression='..GetBorg2Abon(%val)/>
<element name="DateAccrual2" field="PayerCod" expression='..GetDateAccrual2(%val)/>
<element name="PayerCod2" field="PayerCod" expression='(+%val)/>
<element name="SumAccrual2" field="PayerCod" expression='..GetSumAccrual2(%val)/>
<element name="HeatHotwaterVAT2" field="PayerCod" expression='..GetHeatHotwaterVAT2(%val)/>
<element name="SumAccrualAbon2" field="PayerCod" expression='..GetSumAccrualAbon2(%val)/>
<element name="AbonpayVAT2" field="PayerCod" expression='..GetAbonpayVAT2(%val)/>
<element name="SignExecutorName" field="PayerCod" expression='..GetSignExecutorName(%val)/>
<group name="roomsCalc" sql="SELECT ID,ServiceName,PayerCod,HouseRoomCod,MeterGcal,NormGcal,MzkGcal,MinpartGcal,TotalGcal,Tariff,TotalSum,AbonpaySum FROM zui.PayerRoomTotalBillTable WHERE MonthDt = AND PayerCod = ORDER BY PayerCod"  breakOnField="PayerCod">
<parameter expression="..Month"/>
<parameter field="PayerCod"/>
<!--<parameter value="000126"/>-->
<element name="ServiceName" field="ServiceName" />
<element name="RoomAddressName" fields="PayerCod,HouseRoomCod" expression='..GetRoomAddressName(%val("PayerCod"), %val("HouseRoomCod"))/>
<element name="MeterGcal" field="MeterGcal" expression='..NumVal(%val)/>
<element name="NormGcal" field="NormGcal" expression='..NumVal(%val)/>
<element name="MzkGcal" field="MzkGcal" expression='..NumVal(%val)/>
<element name="MinpartGcal" field="MinpartGcal" expression='..NumVal(%val)/>
<element name="TotalGcal" field="TotalGcal" expression='..NumVal(%val)/>
<element name="Tariff" field="Tariff" expression='..NumVal(%val)/>
<element name="TotalSum" field="TotalSum" expression='..Grnn(%val)/>
<element name="AbonpaySum" field="AbonpaySum" expression='..Grnn(%val)/> </group>
</group>
</group> </report>
}

 

And here is  XData  ReportDisplay

 

/// XML description for the display of this report. Used to generate
/// XSlT stylesheets for both HTML and XSL-FO
XData ReportDisplay [ XMLNamespace = "http://www.intersystems.com/zen/report/display]
{
<report xmlns="http://www.intersystems.com/zen/report/displayname='bills' 
title='Title' style='standard'>
  
  <document width="210mm" height="297mm" marginLeft="5mm"
      marginRight="5mm" marginTop="5mm" marginBottom="5mm">
  
  <class name="table.taMainFont">
    <att name="font-family" value="Arial" />
  </class>
  <class name="table.taBoldFont">
    <att name="font-weight" value="bold" />
  </class>
  <class name="table.taTestBorder">
    <!--<att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />-->
  </class>
  <class name="table.taFontSize">
    <att name="font-size" value="6px" />
  </class>
  <class name="td.taBorder">
    <att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />
  </class>
  <class name="th.thBorder">
    <att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />
  </class>
  <class name="table.taMain">
  <att name="border-collapse" value="collapse" />
  </class>
  
  
  <class name="td.tdBorderBottom">
    <att name="border-bottom-style" value="solid" />
    <att name="border-bottom-width" value="1px" />
    <att name="border-bottom-color" value="black" />
  </class>
  <class name="td.tdBorderRight">
    <att name="border-right-style" value="solid" />
    <att name="border-right-width" value="1px" />
    <att name="border-right-color" value="black" />
  </class>
  <class name="tr.tdValignMiddle">
    <att name="vertical-align" value="middle" />
  </class>
  <class name="td.tdPadding">
    <att name="padding-top" value="2px" />
    <att name="padding-right" value="2px" />
    <att name="padding-bottom" value="2px" />
    <att name="padding-left" value="2px" />
  </class>
  <class name="th.thPadding">
    <att name="padding-top" value="2px" />
    <att name="padding-right" value="2px" />
    <att name="padding-bottom" value="2px" />
    <att name="padding-left" value="2px" />
  </class>
  <class name="td.txtAlignLeft">
    <att name="text-align" value="left" />
  </class>
  <class name="td.txtAlignCenter">
    <att name="text-align" value="center" />
  </class>
  <class name="td.txtAlignRight">
    <att name="text-align" value="right" />
  </class>
  <class name="th.thTxtCenter">
    <att name="text-align" value="center" />
    <att name="vertical-align" value="middle" />
  </class>
  
  
  <class name="div.divMainFont">
    <att name="font-family" value="Arial" />
  </class>
  <class name="div.divBoldFont">
    <att name="font-weight" value="bold" />
  </class>
  <class name="div.divFontSize">
    <att name="font-size" value="7px" />
  </class>
  <class name="div.divBorder">
    <att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />
  </class>
  
  </document>
    
  <body>
    <!-- COMBINED REPORT HEADER -->
    <!--<header> 
      <p class="banner1">HelpDesk Combined Sales Report </p>
      <fo> <line pattern="empty"/>  <line pattern="empty"/> </fo>
        <table orient="row" width="3.45in" class='table1'> 
        <item value="Combined Sales" width="2in">
          <caption value="Title:" width="1.35in"/>
        </item>
        <item field="@author" caption="Author:"/>
        <item field="@runBy" caption="Prepared By:"/>
        <item field="@runTime" caption="Time:"/>
        </table>
    </header>-->
    
    <group name='bills'>
    <group name='bill' pagebreak="true" >
    <table orient="col" class="taMainFont taBoldFont taTestBorder" style="font-size:7px;">
    <!--<p>#("The current user is ..GetTitle1())#</p>-->
    <item field="PayerCod" width="50mm" literalSpaces="true" />
    <item value="ПРО НАДАННЯ ПОСЛУГИ З ПОСТАЧАННЯ ТЕПЛОВОЇ ЕНЕРГІЇ ВІД #(..FileDate)#" literalSpaces="true" />
     </table>
     
     <table orient="row" class="taMainFont taFontSize taTestBorder" style="margin-top:6px;" >
     <item field="Company" literalSpaces="true" />
     </table>
     
     <table orient="col" class="taMainFont taFontSize taTestBorder" style="margin-top:3px;" >
     <item field="CompanyAddress" literalSpaces="true" />
     <item field="Name" literalSpaces="true" too-long-text="wrap" breakOnLineFeed="true" style="padding-left: 30px;" />
     </table>
     
     <table orient="col" class="taMainFont taFontSize taTestBorder" style="margin-top:3px;" >
     <table class="taBoldFont" align="center">
     <item value="реквізити для розрахунку за надану послугу" literalSpaces="true" />
     </table>
     <item field="PayerContractInfo" literalSpaces="true" too-long-text="wrap" breakOnLineFeed="true" style="padding-left: 65px;" />
     </table>
     
     
     <!--**********-->
     
     
     <table orient="col" class="taMainFont taFontSize">
     <table orient="row" width="58mm" style="margin-top:3px;">
     <table orient="col" class="taBoldFont taBorder" align="center">
     <item value="Теплова енергія (теплопостачання та ГВП)" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="р/р:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanySettlementAcc" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="МФО:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyMfo" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Код ЄДРПОУ:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyEdrpou" class="tdPadding" />
     </table>
     </table>
    
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="58mm" style="margin-top:3px; padding-left:10px;">
     <table orient="col" class="taBoldFont taBorder" align="center">
     <item value="Абонентське обслуговування" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="р/р:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyAbonSettlementAcc" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="МФО:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyAbonMfo" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Код ЄДРПОУ:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyAbonEdrpou" class="tdPadding" />
     </table>
     </table>
     
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="80mm" style="padding-left:14px; margin-top:1px;">
     <table orient="col">
     <item value="Адреса:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="Address" class="tdPadding" />
     </table>
     <table orient="col">
     <item value="р/р:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="SettleAccount" class="tdPadding" />
     </table>
     <table orient="col">
     <item value="МФО:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value="Код ЄДРПОУ:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CodEdrpou" class="tdPadding" />
     </table>
     </table>
     </table>
     
     
     <!--**********-->
     
     
     <table orient="col" class="taMainFont taFontSize" style="margin-top:10px;">
     <table orient="row" width="58mm" style="margin-top:3px;">
     <table orient="col" class="taBorder">
     <item field="TitleDebtName" class="tdPadding" />
     <item field="DateDebt" class="tdPadding" />
     <item field="Borg1" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Нараховано" class="tdPadding" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="SumAccrual" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value="в т.ч.ПДВ" class="tdPadding" />
     <item field="HeatHotwaterVAT" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Оплачено:" class="tdPadding" literalSpaces="true" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="OpGvPay" class="tdPadding txtAlignRight" />
     </table>
     </table>
    
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="58mm" style="margin-top:3px; padding-left:10px;">
     <table orient="col" class="taBorder">
     <item field="TitleDebtName2" class="tdPadding" />
     <item field="DateDebt" class="tdPadding" />
     <item field="Borg1Abon" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Нараховано" class="tdPadding" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="SumAccrualAbon" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value="в т.ч.ПДВ" class="tdPadding" />
     <item field="AbonpayVAT" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Оплачено:" class="tdPadding" literalSpaces="true" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="PaymentSumAbon" class="tdPadding txtAlignRight" />
     </table>
     </table>
     
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="80mm" style="padding-left:14px; margin-top:1px;">
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     </table>
     </table>
     
     
     <!--**********-->
     
     
     <table orient="col" class="taMainFont taFontSize" style="margin-top:8px;">
     <table orient="row" width="58mm" style="margin-top:3px;">
     <table orient="col" class="taBoldFont">
     <item value="Сума до оплати за теплопостачання" class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item field="Borg2" class="tdPadding txtAlignRight" />
     </table>
     </table>
     
     <table orient="row" width="58mm" style="margin-top:3px; padding-left:16px;">
     <table orient="col" class="taBoldFont">
     <item value="Сума до оплати за абон. обслуговування" class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item field="Borg2Abon" class="tdPadding txtAlignRight" />
     </table>
     </table>
     
     <table orient="row" style="margin-top:1px;">
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     </table>
     </table>
     
     
     <!--**********-->
     
     
     <table orient="row" layout="fixed" class="taMainFont taFontSize" style="margin-left:10px; margin-top:5px;">
     <table orient="col" class="taBoldFont">
     <item value="Нарахування по об’ємах до рахунку № " width="45mm" class="tdPadding" literalSpaces="true" />
     <item field="PayerCod2" width="8mm" class="tdPadding" />
     <item field="DateAccrual2" width="25mm" class="tdPadding" />
     </table>
     </table>
     
     
     <!--**********-->         
     
     
     <table group="roomsCalc" class="taMain taMainFont taFontSize taBorder" style="margin-top:5px;">
     <thead class="thTxtCenter thBorder thPadding" >
     <tr>
      <th rowspan="2"><item value="Назва послуги" width="25mm"/></th>
      <th rowspan="2"><item value="Адреса приміщення" width="70mm"/></th>
      <th colspan="4"><item value="Спожито Гкал" width="13mm"/></th>
      <!--<th><item value=""/></th> 
      <th><item value=""/></th> 
      <th><item value=""/></th> -->
      <th rowspan="2"><item value="Всього" width="17mm"/></th>
      <th rowspan="2"><item value="Тариф(з ПДВ)" width="13mm"/></th>
      <th rowspan="2"><item value="Сума грн." width="13mm"/></th>
      <th rowspan="2"><item value="Абон.плата" width="13mm"/></th>
     </tr>
     <tr>
      <!----> 
      <!----> 
      <th><item value="по ліч." width="13mm"/></th>
      <th><item value="по нормі" width="13mm"/></th>
      <th><item value="МЗК" width="13mm"/></th>
      <th><item value="мін. частка" width="13mm"/></th>
      <!----> 
      <!----> 
      <!----> 
      <!---->
     </tr>
     </thead>
     
     <item field="ServiceName" width="25mm" class="tdPadding taBorder" />
 <item field="RoomAddressName" width="70mm" class="tdPadding taBorder" />
 <item field="MeterGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="NormGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="MzkGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="MinpartGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="TotalGcal" width="17mm" class="tdPadding taBorder txtAlignRight" />
 <item field="Tariff" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="TotalSum" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="AbonpaySum" width="13mm" class="tdPadding taBorder txtAlignRight" />
 
 </table>
 
 
 <table orient="row" class="taMain taMainFont taFontSize" style="margin-top:5px;">
     <table orient="col">
     <item value="Всього нараховано" width="25mm" class="tdPadding" />
 <item value=" " width="70mm" class="tdPadding" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="17mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item field="SumAccrual2" width="13mm" class="tdPadding txtAlignRight" />
 <item field="SumAccrualAbon2" width="13mm" class="tdPadding txtAlignRight" />
 </table>
 <!---->
 <table orient="col">
 <item value="В т.ч. ПДВ" width="25mm" class="tdPadding" />
 <item value=" " width="70mm" class="tdPadding" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="17mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item field="HeatHotwaterVAT2" width="13mm" class="tdPadding txtAlignRight" />
 <item field="AbonpayVAT2" width="13mm" class="tdPadding txtAlignRight" />
</table>
 </table>
 
 
 <table orient="col" class="taMain taMainFont taFontSize" style="margin-top:40px;">
 <item field="SignExecutorName" width="50mm"/>
 </table>
      
     
     </group>
     </group>
    
     
     
 
  </body>
  
</report>
} /// Create result set for a report
ClassMethod CreateRS(ByRef pSC As %Status, ByRef tParams) As %ResultSet
{
    set statement=##class(%SQL.Statement).%New()
    if '$isobject(statement) set pSC=%objlasterror Quit ""
    //set sql="SELECT PayerCod,CompanyName,CompanyAddress FROM zui.PayerTotalBillData WHERE MonthDt=?"
    
    sql = "SELECT PayerCod"
    sql = sql_" FROM zui.PayerTotalData1"
    
    if (tParams(3) '= "") {
    // ..EnterpType '= ""
        sql = sql_" WHERE MonthDt = ? AND Company = ? AND EnterpType = ?"
    else {
    sql = sql_" WHERE MonthDt = ? AND Company = ?"
    }
    
    set pSC=statement.%Prepare(sql)
    if $$$ISERR(pSC) Quit ""
    set statement.%SelectMode=2
    
    if (tParams(3) '= "") {
    // ..EnterpType '= ""
        set rs=statement.%Execute(tParams(1), tParams(2), tParams(3))
    else {
    set rs=statement.%Execute(tParams(1), tParams(2))
    }
    
    quit rs
}

 

Why do table with group="roomsCalc" 

<table group="roomsCalc".......

 

outputs only one row in the table despite that the result set has many rows ?

Discussão (0)1
Entre ou crie uma conta para continuar
Pergunta
· 6 hr atrás

"Invalid Action" Error When Accessing CSP

I’m facing an issue with a CSP-based web application.
The default.csp page loads correctly on both servers. However, when I try to open or submit the login.csp page on one server, it shows the error:

"INVALID ACTION"

The exact same codebase is deployed on another IRIS server, and it works there without any issues.

Summary of the issue:

  • default.csp → Loads successfully
  • login.csp → Fails with “INVALID ACTION” only on one server
  • No code changes between the two servers

Has anyone encountered this kind of scenario?
What configuration differences should I check between the two servers that might cause this behavior?

4 novos comentários
Discussão (4)3
Entre ou crie uma conta para continuar