Kill the old queue and be done with that?
- Log in to post comments
Kill the old queue and be done with that?
XPAth can solve that, you dont need to parse XML to object in that case.
Not sure if choiceGetCount is a public API to do that.
You want to count a number of occurances of a particular node in some path?
Simplified example:
set xml = ##class(EnsLib.EDI.XML.Document).%New().ImportFromString("<root><RepeatingElement>Content</RepeatingElement><RepeatingElement>Content</RepeatingElement></root>") #Dim sc As %Status = $$$ERROR($$$SQLError, SQLCODE, $g(%msg))
Please provide code sample.
As you can see in the documentation, method OutputToIOStream returns a status and not a stream (first argument - a stream is written to in this method), so you should write:
Set pIOStream = ##Class(%IO.StringStream).%New() Set tSC = pRequest.OutputToIOStream(pIOStream,..Separators,"",1) Quit:$$$ISERR(tSC) tSC Set tSC = mail.AttachStream(pIOStream,..Filename,1,"iso-8859-1") Quit tSC
You are sending POST request to
http://192.168.113.132:57772/csp/ :57772/csp/ai/GetRisk/:1ai/GetRisk/
but you should probably send request to:
Are you just selecting the property? If so can you please provide property definition.
You should init pIOStream:
Set pIOStream=##Class(%IO.StringStream).%New()
RawContent is a string, from docs:
The raw text content of the document. Note that this is a truncated version suitable for use in SQL results and visual inspection, but not a complete or definitive representation of the document.
To get message as a stream use OutputToIOStream method in EnsLib.HL7.Message class.
That does not seem to be possible. Why not JOIN them directly?
SELECT * FROM Sample.Employee e LEFT JOIN Sample.Company c ON c.id = e.id JOIN Sample.Vendor v ON v.%id = c.attr
ClassMethod SetNamespace(user As %String = {$username}, namespace As %String = {$namespace})
{
new $namespace
set $namespace = "%SYS"
set user = ##class(Security.Users).%OpenId($zcvt(user,"l"))
set user.Namespace = namespace
quit user.%Save()
}You should probably add input validation.
Here's how you can import CSV without writing any code yourself.
After that make generated class xmlenabled and generate XML from objects.
Resources property is not evaluated. You can see that in %Installer.Role class, %OnGenerateCode method.
/// Generate code for this document.
Method %OnGenerateCode(pTargetClass As %Dictionary.CompiledClass, pCode As %Stream.TmpCharacter, pDocument As %Installer.Manifest) As %Status [ Internal ]
{
Do pCode.WriteLine(..%Indent()_"Do tInstaller.CreateRole($$$EVAL("_..Target_"),$$$EVAL("_..Description_"),"""_..Resources_""","""_..RolesGranted_""")")
Quit $$$OK
}
You can get around that with this hacky solution:
<Role
Name="${PMGNAMESPACE}"
Description="Works User Role for ${PMGNAMESPACE} Namespace"
Resources='"_tInstaller.Evaluate("${PMGDbResource}:RW,PMG:RWU")_"' RolesGranted="" />Which would be compiled into the following code:
Do tInstaller.CreateRole(tInstaller.Evaluate("${PMGNAMESPACE}"),tInstaller.Evaluate("Works User Role for ${PMGNAMESPACE} Namespace"),""_tInstaller.Evaluate("${PMGDbResource}:RW,PMG:RWU")_"","")
I guess if you need to do that once, it's okay. But if it's a regular occurrence writing a method and calling it from installer might be a better solution.
Rational is UML IDE. If you want to use version control use Git. Here's a guide on how to set up Atelier with Git. And another one.
Are you talking about Rational Software Architect?
Just output the data you need to the current device, for example:
Write "It works"
Have you cleared query cache?
Not sure about delegated authentication (is it only delegated? Or with password? Details may vary depending on your exact setup), but for password authenticated web application SSO is possible by following these steps (originally written for CSP+REST web apps, but the idea is the same):
If all these conditions are met, user would only consume one license slot per session and perform only one login and audit database would store only one login event per session.
XMLs are not identical. Second one has additional <Family> tag.
Here's how you can import CSVs into Caché without writing any code yourself. I recommend this approach.
In your example, replace:
set adapter = ##class(%File).%New()
set status = adapter.%Open("C:\In\in.csv")with:
set adapter = ##class(%File).%New("C:\In\in.csv")
set status = adapter.Open("R")Check out the documentation for %File class.
CAPTION and COLLATION are default property parameters that you can add to any property.
Compare what user entered to the specific value. If they mismatch - ask again. Also there are several utility methods in %Prompt class for number/yes-no/etc input:
For example:
do ##class(%Prompt).GetYesNo("Enter Yes or No:", .result)User can input only Yes (Y) or No (N). result variable would hold 1 or 0.
You can also check %Prompt code and write something based on that.
How do you print?
This can be done with SQL procedure:
Query SomeQuery() As %SQLQuery
{
SELECT ID || SomeClass.GetParam('SomeClass', 'SOMENAME') FROM Table
}
ClassMethod GetParam(class, param) As %String [ CodeMode = expression, SqlProc ]
{
$parameter(class, param)
}Turns out Java Gateway can instantiate objects and call their methods. Here's a rewrite of the above code, but all connecting is done in constructor:
package com.isc.rabbitmq;
import com.rabbitmq.client.*;
public class Wrapper {
private final Channel _channel;
private final String _queueName;
public Wrapper(String hostName, String queueName) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(hostName);
Connection connection = factory.newConnection();
_channel = connection.createChannel();
_channel.queueDeclare(queueName, false, false, false, null);
_queueName = queueName;
}
public void sendMsg(byte[] msg) throws Exception {
_channel.basicPublish("", _queueName, null, msg);
}
public int readMsg(byte[] msg) throws Exception {
boolean autoAck = true;
GetResponse response = _channel.basicGet(_queueName, autoAck);
int len = 0;
if (response == null) {
// No message retrieved.
} else {
AMQP.BasicProperties props = response.getProps();
len = response.getBody().length;
System.arraycopy(response.getBody(),0,msg,0,len);
}
return len;
}
}Also note, that direct casting from regular objects and into dynamic was removed.
Doesn't it work only for datatype properties though?