Re: Common Table Expression SQL for menus

2019-02-19 Thread Charlie Lotridge
Thanks for the suggestion Phil. I just tried it and unfortunately ARS said
"no".

I'll keep digging, but I guess for now I'll just need to use a SQL view.

Thanks again,
Charlie


On Tue, Feb 19, 2019 at 11:00 AM Phil Murnane 
wrote:

> Hi Charlie,
>
>
>
> Don’t know if this will help, but I frequently see CTEs written with a
> leading semicolon before the WITH keyword – e.g. ;WITH cte AS…
>
>
>
> IIRC this is required by the SQL engine -- maybe give that a shot?
>
> --Phil
>
>
>
> *From:* ARSList  *On Behalf Of *Charlie
> Lotridge
> *Sent:* Tuesday, February 19, 2019 1:37 PM
> *To:* ARSList 
> *Subject:* Common Table Expression SQL for menus
>
>
>
> Hi all,
>
>
>
> I'm trying to use a SQL query containing a Common Table Expression for a
> drop-down menu. I can see that the query is submitted to the server and is
> appropriately generating results. But the menu comes back as empty.
>
>
>
> For anyone not familiar, a Common Table Expression (CTE) is a construct
> supported by (at least) SQL Server that allows for some extreme flexibility
> in the generation of result sets, in some cases things that you just can't
> do without it. In SQL Server queries containing CTEs begin with a "WITH"
> keyword instead of "SELECT". I don't know if other database systems support
> this construct.
>
>
>
> One workaround is to embed the query into a SQL view, then query the view.
> I've used this workaround in the past but it is not entirely convenient or
> elegant.
>
>
>
> Has anyone else had this problem and maybe have some insight as to why
> it's failing or perhaps developed a better workaround?
>
>
>
> Incidentally, this is on an ARS system running v8.1.
>
>
>
> Thanks,
> Charlie
> --
> ARSList mailing list
> ARSList@arslist.org
> https://mailman.rrr.se/cgi/listinfo/arslist
>
-- 
ARSList mailing list
ARSList@arslist.org
https://mailman.rrr.se/cgi/listinfo/arslist


Common Table Expression SQL for menus

2019-02-19 Thread Charlie Lotridge
Hi all,

I'm trying to use a SQL query containing a Common Table Expression for a
drop-down menu. I can see that the query is submitted to the server and is
appropriately generating results. But the menu comes back as empty.

For anyone not familiar, a Common Table Expression (CTE) is a construct
supported by (at least) SQL Server that allows for some extreme flexibility
in the generation of result sets, in some cases things that you just can't
do without it. In SQL Server queries containing CTEs begin with a "WITH"
keyword instead of "SELECT". I don't know if other database systems support
this construct.

One workaround is to embed the query into a SQL view, then query the view.
I've used this workaround in the past but it is not entirely convenient or
elegant.

Has anyone else had this problem and maybe have some insight as to why it's
failing or perhaps developed a better workaround?

Incidentally, this is on an ARS system running v8.1.

Thanks,
Charlie
-- 
ARSList mailing list
ARSList@arslist.org
https://mailman.rrr.se/cgi/listinfo/arslist


Re: Where do I configure "Save Successful With Warnings"?

2019-01-23 Thread Charlie Lotridge
Wow, it's right there. Thanks!

I had dug deep into every single sub-topic of that BMC Remedy Developer
Studio main topic, but never thought to select that page itself.

On Wed, Jan 23, 2019 at 10:45 AM Powell, Timothy 
wrote:

>
>
>
>
>
>
>
>
> Tim Powell
>
> Remedy Engineer
>
> 404-582-5699 (Desk)
> 704-301-1047 (Mobile)
>
>
>
> *From:* ARSList [mailto:arslist-boun...@arslist.org] *On Behalf Of *Charlie
> Lotridge
> *Sent:* Wednesday, January 23, 2019 1:34 PM
> *To:* ARSList 
> *Subject:* [EXTERNAL] Where do I configure "Save Successful With
> Warnings"?
>
>
>
> Hi,
>
>
>
> Sorry for the rookie question here, but I just can't locate where to
> configure which warnings appear (or don't) in the popup that appears when
> you save a form in Remedy Developer Studio (v.9.1.06). I used to know, but
> I think I've stuffed my brain with too much nonsense and that piece of info
> has fallen out.
>
>
>
> Here are some examples of the warnings I mean:
>
>
>
> The field label 'Help' is duplicated on this form.,  5026,  MD_People
>
> The field on this form with the name or ID of
> MDLEPXFilter:Include:Assigned By needs a label.,  5033,  MD_People
>
> ...
>
>
>
> Thanks,
>
> Charlie
> --
> ARSList mailing list
> ARSList@arslist.org
> https://mailman.rrr.se/cgi/listinfo/arslist
>
-- 
ARSList mailing list
ARSList@arslist.org
https://mailman.rrr.se/cgi/listinfo/arslist


Where do I configure "Save Successful With Warnings"?

2019-01-23 Thread Charlie Lotridge
Hi,

Sorry for the rookie question here, but I just can't locate where to
configure which warnings appear (or don't) in the popup that appears when
you save a form in Remedy Developer Studio (v.9.1.06). I used to know, but
I think I've stuffed my brain with too much nonsense and that piece of info
has fallen out.

Here are some examples of the warnings I mean:

The field label 'Help' is duplicated on this form.,  5026,  MD_People
The field on this form with the name or ID of MDLEPXFilter:Include:Assigned
By needs a label.,  5033,  MD_People
...

Thanks,
Charlie
-- 
ARSList mailing list
ARSList@arslist.org
https://mailman.rrr.se/cgi/listinfo/arslist


Issue with SQL Set Fields that uses a Common Table Expression

2018-07-09 Thread Charlie Lotridge
Hi,

I've got a filter that's performing a SQL Set Fields and the SQL is
constructed using a Common Table Expression (i.e. it begins with a "WITH"
keyword).

Through ARS logging and using SQL Server profiling, I can see that the SQL
is being submitted to SQL Server and executed. If I run the SQL by hand in
a SQL query window I can see that it does yield the expected results.

However, the fields being set by the Set Fields are NOT being set to any of
the result values, they're just being set to NULL.

I'm a bit concerned that this might be a "security feature" that BMC's
installed to prevent SQL injection or something.

Has anyone else seen this behavior? Is there an easy workaround or fix?

Yes, in this particular case I can probably refactor the SQL to eliminate
the CTE, but for a few reasons this is not a convenient solution.

FYI...
SQL Server 2014
ARS v8.1.02

Thanks,
Charlie
-- 
ARSList mailing list
ARSList@arslist.org
https://mailman.rrr.se/cgi/listinfo/arslist


Re: Help with odd set of SQL operations by ARS

2018-06-19 Thread Charlie Lotridge
Great suggestion, thank you. That revealed the misbehaving mid-tier.

Unfortunately I don't have access to the machine and my colleague, who set
it up (as a test bed for something) is out of town, but I'm going to have
him shut it down to resolve this issue.

Thanks again!

On Mon, Jun 18, 2018 at 8:51 AM, LJ LongWing  wrote:

> It MIGHT be useful if we also had API loggingAPI logging would tell us
> definitively if it was Mid-Tier doing the call (which is what it looks
> like)...but it would also tell you the source IP of the machine making the
> callI have never seen this behavior before but I suspect it might be
> related to caching somehowonce you know which of your mid-tier servers
> is causing it you can shut it down to verify that it stops when it's not
> running, and maybe do a hard cache flush to try and clean up whatever might
> be wonky.
>
> On Mon, Jun 18, 2018 at 8:47 AM Charlie Lotridge 
> wrote:
>
>> Hi,
>>
>> I'm not exactly sure when this started, but within the past few weeks my
>> production ARS has started repeatedly issuing the following three SQL
>> statements:
>>
>>
>> *SELECT  TOP 2  T127.C1,C124 FROM T127 WHERE (T127.C101 = N'MidTier
>> Service') ORDER BY 1 ASC*
>>
>> *SELECT MAX(timestamp) FROM user_cache*
>>
>> *SELECT MAX(timestamp) FROM group_cache*
>>
>> T127 is the User form.
>>
>> It's doing this about 10 times per second.
>>
>> Can anyone shed any light on what it's doing and how I can stop it? Any
>> help would be appreciated.
>>
>> Here is the raw SQL logging should the additional detail be useful:
>>
>>
>>  > Service -->  /* Mon Jun 18 2018 07:34:34.8220
>> */SELECT  TOP 2  T127.C1,C124 FROM T127 WHERE (T127.C101 = N'MidTier
>> Service') ORDER BY 1 ASC
>>
>>  > Service -->  /* Mon Jun 18 2018 07:34:34.8230
>> */OK
>>
>>  > >  /* Mon Jun 18 2018 07:34:34.8570 */SELECT
>> MAX(timestamp) FROM user_cache
>>
>>  > >  /* Mon Jun 18 2018 07:34:34.8580 */OK
>>
>>  > >  /* Mon Jun 18 2018 07:34:34.8580 */SELECT
>> MAX(timestamp) FROM group_cache
>>
>>  > >  /* Mon Jun 18 2018 07:34:34.8580 */OK
>>
>> Thanks,
>> Charlie
>> --
>> ARSList mailing list
>> ARSList@arslist.org
>> https://mailman.rrr.se/cgi/listinfo/arslist
>>
>
> --
> ARSList mailing list
> ARSList@arslist.org
> https://mailman.rrr.se/cgi/listinfo/arslist
>
>
-- 
ARSList mailing list
ARSList@arslist.org
https://mailman.rrr.se/cgi/listinfo/arslist


Help with odd set of SQL operations by ARS

2018-06-18 Thread Charlie Lotridge
Hi,

I'm not exactly sure when this started, but within the past few weeks my
production ARS has started repeatedly issuing the following three SQL
statements:


*SELECT  TOP 2  T127.C1,C124 FROM T127 WHERE (T127.C101 = N'MidTier
Service') ORDER BY 1 ASC*

*SELECT MAX(timestamp) FROM user_cache*

*SELECT MAX(timestamp) FROM group_cache*

T127 is the User form.

It's doing this about 10 times per second.

Can anyone shed any light on what it's doing and how I can stop it? Any
help would be appreciated.

Here is the raw SQL logging should the additional detail be useful:

   
   /* Mon Jun 18 2018 07:34:34.8220
*/SELECT  TOP 2  T127.C1,C124 FROM T127 WHERE (T127.C101 = N'MidTier
Service') ORDER BY 1 ASC
   
   /* Mon Jun 18 2018 07:34:34.8230
*/OK
   
   /* Mon Jun 18 2018 07:34:34.8570 */SELECT
MAX(timestamp) FROM user_cache
   
   /* Mon Jun 18 2018 07:34:34.8580 */OK
   
   /* Mon Jun 18 2018 07:34:34.8580 */SELECT
MAX(timestamp) FROM group_cache
   
   /* Mon Jun 18 2018 07:34:34.8580 */OK

Thanks,
Charlie
-- 
ARSList mailing list
ARSList@arslist.org
https://mailman.rrr.se/cgi/listinfo/arslist


Re: Run API from filter deadlocks

2017-03-15 Thread Charlie Lotridge
Nice...good catch. I'd never seen evidence of ARS level locking
before...interesting.

It was simple enough refactor to avoid this and get it working as needed.
Without boring you with details, I'd originally coded it that way to avoid
an extra round trip from client to server. But it's not really important in
this situation.

Thanks for the help.


On Wed, Mar 15, 2017 at 10:51 AM, LJ LongWing <lj.longw...@gmail.com> wrote:

> **
> Ok, I see your issue.
>
> You are working with a 'Physician, operate on thyself' type of issue.
>
> So, you finish doing phase 1 operations on form MD_KronosTest,
> request MDKT-01you then start phase 2 which includes the
> run-processes...
>
> you run process is then coming in and trying to do a set on the same form,
> same record
>
> Because your original operation is currently locking that record, the
> second operation cannot modify it until phase 3 is completed, and the
> record is releasedso, because operation 2 is sitting inside of
> operation 1, operation 1 won't be able to complete BEFORE operation 2
> finishes...and operation 2 can't complete till operation 1 finishesthus
> deadlock
>
> simplyyou can't have the doctor operate on himself
>
> On Wed, Mar 15, 2017 at 12:01 PM, Charlie Lotridge <lotri...@mcs-sf.com>
> wrote:
>
>> **
>> LJ,
>>
>> Thanks for the suggestion.
>>
>> Unfortunately filterAPI isn't really an option. I have a large
>> infrastructure (C++ & C# libraries) that I build on that allow me to
>> rapidly develop API programs, but don't lend themselves to being used for
>> filterAPI. I'd have to get the .NET runtime to work in the plugin framework
>> and haven't taken (don't have) the time to figure that out, especially for
>> this short project. Also, (getting way off topic) my typical API paradigm
>> doesn't require synchronous access...this is a very unusual use case for
>> me...which further decreases the motivation to do that research.
>>
>> Not sure if I can better describe the deadlock beyond the filter log
>> description I gave, but I'll try...
>>
>> The $PROCESS$ times out and causes the ARS transaction to error. Here's
>> the relevant filter log section with the $PROCESS$ Set Fields, and the
>> subsequent failure message, highlighted:
>>
>> > 390620   >   /* Wed Mar 15 2017
>> 08:40:53.3190 */ End of filter processing (phase 1) -- Operation - SET
>> on MD_KronosTest - MDKT-01
>> > 390620   >   1: Process
>> > 390620   >  
>> Application-Release-Pending
>> > 390620   >   2: Set Fields
>> > 390620   > 
>> c:\bin\KronosPost.exe
>> -X=localhost -U=ARSystem -P=x --arRPC=390680 MDKT-01
>> > 390620   > Exit code:
>> 0  Value:
>> > 390620   > Filter/escalation
>> 'set field' process timed out before completion
>> > 390620   >    Error while performing
>> filter action: Error 39
>> > 390620   >    Filter
>> "MDKT:GUIDEHandleEvents200Post:IfServicePushToUpdateEntry`!":
>> No enabled error handler
>> > 390620   >   /* Wed Mar 15 2017
>> 08:40:58.3540 */ Call Guide "MDKT:F:HandleEvents:GENERATED" (return)
>> > 390620   >    Error while performing
>> filter action: Error 39
>> > 390620   >    Filter
>> "MDKT:050OnSubmitModifyService:IfEventCallHandleEvents:GENERATED": No
>> enabled error handler
>> > 390620   >   /* Wed Mar 15 2017
>> 08:40:58.3540 */ End of filter processing (phase 1) -- Operation -
>> SERVICE on MD_KronosTest - MDKT-01
>>
>> Once the transaction completes, I then see workflow associated with the
>> API program operation, indicating it DID get started (this logging
>> immediately follows the above):
>>
>>
>>/* Wed Mar 15
>> 2017 08:40:58.3550 */ Start filter processing (phase 1) -- Operation -
>> GET on MD_KronosTest - MDKT-01
>>
>>/* Wed Mar 15
>> 2017 08:40:58.3550 */  Checking
>> "MDKT:500OnGetEntry:CallOnGetEntry:GENERATED" (500)
>>
>>   --> Passed
>> -- perform actions
>>
>>0: Call
>> Guide "MDKT:F:OnGetEntry:GENERATED"
>>
>>/* Wed Mar 15
>> 2017 08:40:58.3570 */  Checking
>> "MDKT:GUIDEOnGetEntry010CallGetEntryDescription:GENERATED" (0)
>>
>>   --> Passed
>> -- perform act

Re: Run API from filter deadlocks

2017-03-15 Thread Charlie Lotridge
LJ,

Thanks for the suggestion.

Unfortunately filterAPI isn't really an option. I have a large
infrastructure (C++ & C# libraries) that I build on that allow me to
rapidly develop API programs, but don't lend themselves to being used for
filterAPI. I'd have to get the .NET runtime to work in the plugin framework
and haven't taken (don't have) the time to figure that out, especially for
this short project. Also, (getting way off topic) my typical API paradigm
doesn't require synchronous access...this is a very unusual use case for
me...which further decreases the motivation to do that research.

Not sure if I can better describe the deadlock beyond the filter log
description I gave, but I'll try...

The $PROCESS$ times out and causes the ARS transaction to error. Here's the
relevant filter log section with the $PROCESS$ Set Fields, and the
subsequent failure message, highlighted:

   /* Wed Mar 15 2017
08:40:53.3190 */ End of filter processing (phase 1) -- Operation - SET
on MD_KronosTest - MDKT-01
   1: Process
  
Application-Release-Pending
   2: Set Fields
  
c:\bin\KronosPost.exe
-X=localhost -U=ARSystem -P=x --arRPC=390680 MDKT-01
 Exit code:
0  Value:
 Filter/escalation
'set field' process timed out before completion
    Error while performing
filter action: Error 39
    Filter
"MDKT:GUIDEHandleEvents200Post:IfServicePushToUpdateEntry`!":
No enabled error handler
   /* Wed Mar 15 2017
08:40:58.3540 */ Call Guide "MDKT:F:HandleEvents:GENERATED" (return)
    Error while performing
filter action: Error 39
    Filter
"MDKT:050OnSubmitModifyService:IfEventCallHandleEvents:GENERATED": No
enabled error handler
   /* Wed Mar 15 2017
08:40:58.3540 */ End of filter processing (phase 1) -- Operation -
SERVICE on MD_KronosTest - MDKT-01

Once the transaction completes, I then see workflow associated with the API
program operation, indicating it DID get started (this logging immediately
follows the above):

   
   /* Wed Mar 15
2017 08:40:58.3550 */ Start filter processing (phase 1) -- Operation -
GET on MD_KronosTest - MDKT-01
   
   /* Wed Mar 15
2017 08:40:58.3550 */  Checking
"MDKT:500OnGetEntry:CallOnGetEntry:GENERATED" (500)
   
  --> Passed
-- perform actions
   
   0: Call
Guide "MDKT:F:OnGetEntry:GENERATED"
   
   /* Wed Mar 15
2017 08:40:58.3570 */  Checking
"MDKT:GUIDEOnGetEntry010CallGetEntryDescription:GENERATED" (0)
   
  --> Passed
-- perform actions
   
   0: Call
Guide "MDKT:F:GetEntryDescription:GENERATED"
...

Until the timeout on the $PROCESS$ occurs, both the ARS thread and my API
process are stuck (deadlocked).

When run standalone, the program completes in less than 1 second. Still,
just to test, I did try setting the "Process Timeout" to 25 seconds.

Regardless, the documentation, and my vague recollection from the last time
I tried this, suggest that it can be made to work and my question is: why
isn't it working?

I *am* running this in a SERVICE operation...maybe Remedy doesn't like that
for some reason? I will try refactoring to run it in a SET operation
instead to test.

Thanks,
Charlie


On Wed, Mar 15, 2017 at 9:22 AM, LJ LongWing <lj.longw...@gmail.com> wrote:

> **
> Charlie,
> Being you are writing it.have you considered making it a filterAPI
> Plugin instead of a command line?this has many advantages over a
> run-processanyway
>
> You say it's a deadlockcan you identify what you mean by that?
>
> On Wed, Mar 15, 2017 at 11:11 AM, Charlie Lotridge <lotri...@mcs-sf.com>
> wrote:
>
>> **
>> Hi,
>>
>> I'm trying to run an API program I wrote in a filter Set Fields using
>> $PROCESS$, but it's deadlocking and I can't see why.
>>
>> The first thing I tried, described in the documentation here
>> <https://docs.bmc.com/docs/display/public/ars81/Executing+C+API+programs+in+workflow>,
>> is to increase the Max Thread counts of the relevant queues but no joy. I
>> even tried directing the API to use a private queue (RPC 390680), but still
>> it deadlocks.
>>
>> I can see the deadlocking occur in a filter log: I first see my workflow
>> (running in a fast queue) perform the $PROCESS$. It hangs for the
>> configured 5 second timeout, then issues its error and completes its
>> transaction. But it DID spin up my program, which (after my initial
>> transaction fails and completes) then makes its connection (to private
>> queue 390680) and correctly does its thing.
>>
>> I haven't bothered to instrument the API program to test this, but I'm
>> quite sure that it's hanging at the point that it tries to make the AR

Run API from filter deadlocks

2017-03-15 Thread Charlie Lotridge
Hi,

I'm trying to run an API program I wrote in a filter Set Fields using
$PROCESS$, but it's deadlocking and I can't see why.

The first thing I tried, described in the documentation here
,
is to increase the Max Thread counts of the relevant queues but no joy. I
even tried directing the API to use a private queue (RPC 390680), but still
it deadlocks.

I can see the deadlocking occur in a filter log: I first see my workflow
(running in a fast queue) perform the $PROCESS$. It hangs for the
configured 5 second timeout, then issues its error and completes its
transaction. But it DID spin up my program, which (after my initial
transaction fails and completes) then makes its connection (to private
queue 390680) and correctly does its thing.

I haven't bothered to instrument the API program to test this, but I'm
quite sure that it's hanging at the point that it tries to make the ARS
connection.

FYI I need to use $PROCESS$ because I need the results of the API to be
available to subsequent filter workflow. Run Process, which will run the
API asynchronously, is not suitable.

Also FYI, it's a fully licensed development system with absolutely nothing
else going on (no other person or processes are using it).

I've done this kind of thing before, but it's been a long time and my best
recollection is that increasing the thread count solved the problem.

Any suggestions?

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
"Where the Answers Are, and have been for 20 years"


Re: BoF Groups in Communities

2015-05-04 Thread Charlie Lotridge
...those of us custom shops that may not be watching the BMC Communities
much.  Yeah, that would be me.

Great idea...voted up.

-charlie

On Mon, May 4, 2015 at 11:36 AM, Jason Miller jason.mil...@gmail.com
wrote:

 **
 Hello all,

 I am posting this BMC Communities Idea here for those of us custom shops
 that may not be watching the BMC Communities much.

 BoF Groups in Communities https://communities.bmc.com/ideas/9948

 I submitted the Idea as a more general Idea (with consideration of other
 BMC products) than what I am ultimately looking for. Basically I am
 floating the idea to see if custom Remedy Developers want a place for us to
 talk about AR System development, free from ITSM discussions (or mostly
 free, I am sure some ITSM will creep in because there is so much overlap).

 My thoughts around using the Communities vs. ARSlist are:
 1) it is appropriate to have ITSM discussions here and there isn't really
 a way to segregate the discussion (short of a new list)

 2) there is a much higher volume of discussion on the BMC Communities,
 some users that are not even aware of the ARSlist so the Communities these
 days have a larger reach (as far as I can tell anyways)

 3) The Jive platform the BMC Communities run on can have more rich
 interactions where we can easily share screen prints, documents/defs,
 videos, etc. without much size constraint.

 If you are interested please vote.

 Jason
 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: .Net API Wrapper Framework Version

2015-04-01 Thread Charlie Lotridge
Hi Bruce,

I actually have a .net API that I built concurrently with Remedy's.  I
started the project back around 2005 and have maintained it ever since.
And yes, it's currently built against .NET v4.51 and v8.1 of ARS.

I built it because I needed something that was higher fidelity to the C API
then the Remedy API was at the time, and with more support for data
dictionary type operations (e.g. creating, modifying, deleting forms,
fields, workflow objects, etc.) than the Remedy API had (at the time).

These libraries are actually very easy to maintain since the vast majority
of the code is actually generated from tools I've built to aid in that
maintenance.  All Remedy C API structures are described in an XML file
which is processed by a tool which then generates a set of corresponding
C++ and C# classes.  At the lowest level, you can converse with ARS nearly
identically how you would using the native C API.  A higher level library
then built on top of this provides for higher level abstractions and
support.

It's always been my intention to someday publish this work, including
source, under GPLv3, but I've lacked the motivation and the time.

If you're at all interested in discussing further, I'd be happy to take it
offline with you and show you how it works and some samples.

-charlie

On Wed, Apr 1, 2015 at 6:42 AM, Wilson, Bruce B bruce.wil...@nscorp.com
wrote:

 **

 Hello All,



 I am working with Visual Studio 2013 and WPF (Windows Presentation
 Foundation).

 I am integrating the .Net API Wrapper to access Remedy Meta-data and
 updating form data.



 We are using Remedy 7.6.04 SP4.



 The .Net API Wrapper was written for a maximum .Net Framework version 2.0

 Is there an update or possibility of an update to advance the .Net
 Framework to a more current version?



 Also, is there any other vendor-supplied .Net API Wrapper besides the one
 supplied with BMC Remedy?



 Thanks for your help,

 Bruce B. Wilson

 Consulting Director

 Datastream Consulting, LLC


 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Refresh my Memory Please

2015-03-25 Thread Charlie Lotridge
Doug,

You should not need any middleware to do this.

It's not clear if this is what you're trying, but I'd recommend creating a
MS SQL view that pulls the data from the remote DB.

One advantage is that if you can successfully query the SQL view in (say)
SQL Server Management Studio query window (using the Remedy account), then
the ARS server will have no problem querying it either and should be
blissfully unaware that the data is coming from a remote source.  I.e., if
there are any problems with the connection, they'll show up when you try to
directly SELECT from the SQL view.

Another advantage is that it isolates ARS from any changes you may make to
this data source.  E.g., should you decided to pull the remote data into a
local table, you'd just need to reconfigure the SQL view to point to the
local data, and you would not need to change the Remedy view at all.

Hope this helps.

-charlie

On Wed, Mar 25, 2015 at 8:58 AM, Tanner, Doug doug.tan...@compass-usa.com
wrote:

 **

 Dear List,

 I am going from Memory here, so I need some assistance
 (Senior Moment)



 Configuration:

 ARS 8.1.2

 MS SQL 2012



 Our DBA has setup a couple of Linked Server on our
 dedicated MS SQL 2012 Server.



 (1st Linked Server) – Points to an external MS SQL database and works
 just fine (Have successfully created a View Form and Workflow – been in
 production for years)



 (2nd Linked Server) – Points to an external DB2 database. When attempting
 to create the View form I get a ARERR 552.



 Backend Database: DB2 LUW Version 10.5.5

 Using MS SQL Connector: Microsoft OLEDB provider for DB2 V4.1



 If I login to SQL Manager using the Remedy account, I can
 see and query everything just fine on this Linked Server, so permissions,
 etc. appear to be fine.



 I recall that going “cross databases” (Remedy-MS SQL,
 Linked Server #2 – DB2) requires an additional add on (“Middleware”). Do I
 recall this correctly?

 Can someone enlighten me?



 (I recall James Croom authoring something years ago J)



 Thanks in Advance, Doug



 *|**Doug Tanner **| *Enterprise Workflow Applications *|*

 *|*Compass Group *| *2400 Yorkmont Rd, Charlotte, NC 28217 *|*

 *| *(*w*) +1.704.328.3178 *| *(*m*) +1.980.230.8563 *|*

 *| *www.cgnad.com *|*why Compass? http://www.worldofcompass.com/video/*
 |*


  This email is subject to certain disclaimers, which may be reviewed via
 the following link. http://compass-usa.com/Pages/Disclaimer.aspx.
 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: need some ideas from you how to show incidents recordsover4hrinred color.

2014-12-10 Thread Charlie Lotridge
Hmmm...let's see...

Yeah, I'll vote for option number 1!  ;)

-c

On Wed, Dec 10, 2014 at 7:34 AM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Okso, I decided to spend some time playing with this this morning and
 ended up putting together a functional prototype, but I wouldn't implement
 this prototype in a production environment because of the
 client/server/network overhead associatedand I learned something new :)

 So...the 'new' thing that I learned is that when setting color of a table
 field, the field must be on the source form, not a display only on the
 current form...this is important because the field must be set at time of
 'refresh' of the table to set the colorso, this negates the loop
 through the table with AL Guide...except in the prototype I built...where
 the loop through the table causes a push to the backend form, and then a
 second refreshso, each record in the table is queried once, then
 updated with a color, then queried againas you can imagine, this gets
 very 'heavy' from a performance perspectiveso...after all of this is
 said and done, I think there are only two options truly in play

 1 - View form that calculates the color automatically in a DB view without
 any Remedy workflow
 2 - JavaScript magic

 The other options, as explored seem to either not work, or are too
 resource intensive.

 On Tue, Dec 9, 2014 at 11:13 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 Hi Charlie,

 Understood the case from you. So, I thought the AL field will work but it
 doesn't.

 Long story shorts. I managed to walk a table field and be set a value to
 selection-field. But it does not change to the display value. I.e. 0=Red,
 1=Yellow.
 So, even the value is set , I could not change the color.

 Anyone has an experience to walk-a-table fields in a selection-field of a
 join form.  Please let me know how.

 Thanks // Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎10/‎12/‎14 7:01 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents
 recordsover4hrinred color.

 **
 Omega,

 I've run a quick test and as I suspected the ARGetListEntryWithFields API
 is used to fill the table upon refresh, and it does NOT trigger the Get
 Entry filters of the entries retrieved.

 If you're interested, I've attached the form  filters I used for the
 test. Similar to your own requirement, the Get Entry filters will simply
 set a Display type selection field called 'Color Status' to Very Old if
 the entry was modified more than 5 minutes ago, Old if it was modified
 more than 3 minutes ago, otherwise New.

 Load these defs then add a few entries over the course of the next 5
 minutes or so. Run a normal search list and move through them entry by
 entry, running a filter log, to see that the Get Entry filters do in fact
 run (which is also evident since the 'Color Status' is being set).

 Then refresh the table while running a filter log and you will NOT see
 any of the filters being run.

 I think you'll need to consider one of the other solutions.

 -charlie

 On Tue, Dec 9, 2014 at 4:16 AM, Omega LiPO omegal...@gmail.com wrote:

 **
 Thanks. I knew the enable/disable filter log at server side and client.

 However, I did not get the time to test today.   I got a weird ideas to
 use on display active link to set the fields, and will try it tmr, to see
 if it can set the display-field under the table-field. Which I think it
 might works.

 And will let you all knew the result. .

 Thank you // Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎9/‎12/‎14 12:29 PM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records
 over4hrinred color.

 **
 Omega,

 Here's a link
 https://docs.bmc.com/docs/display/public/ars81/Enabling+logs+for+performance+issues
 to relevant documentation on server side logging. I'm not quite clear on
 what you did not get, but to be clear I do mean that you should turn on the
 filter log, refresh the table, turn off the filter log, and examine the
 results.  If things are working as you want them to, then you should see
 your Get Entry filter firing once for every entry retrieved in the table.

 This has actually got my curiosity peaked, so I'll probably try some
 testing myself tomorrow, though do let me know what you discover (or does
 someone else already know the answer...?).

 Thanks,
 Charlie

 On Mon, Dec 8, 2014 at 2:40 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 Hi Charlie,

 How to do the filter-log ? You mean turn on the filter log. I did not
 get it.

 Thanks,
 Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎9/‎12/‎14 5:53 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records
 over 4hrinred color.

 **
 Omega, run a filter log to make sure that the Get Entry filter is
 actually firing on each entry when you

Re: need some ideas from you how to show incidents recordsover4hrinred color.

2014-12-10 Thread Charlie Lotridge
LJ, you'd brought up a point that's been an outstanding question for me,
and since we're on the topic...

Why do display fields from the local form appear as options for columns for
a table? I've never used this feature and don't quite know what it's for.

Anyone use this? And if so how  why?

On Wed, Dec 10, 2014 at 8:12 AM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Sorry...forgot to credit the source of the 2 ideas I said were still in
 play :)

 On Wed, Dec 10, 2014 at 9:09 AM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:

 **
 Hmmm...let's see...

 Yeah, I'll vote for option number 1!  ;)

 -c

 On Wed, Dec 10, 2014 at 7:34 AM, LJ LongWing lj.longw...@gmail.com
 wrote:

 **
 Okso, I decided to spend some time playing with this this morning
 and ended up putting together a functional prototype, but I wouldn't
 implement this prototype in a production environment because of the
 client/server/network overhead associatedand I learned something new :)

 So...the 'new' thing that I learned is that when setting color of a
 table field, the field must be on the source form, not a display only on
 the current form...this is important because the field must be set at time
 of 'refresh' of the table to set the colorso, this negates the loop
 through the table with AL Guide...except in the prototype I built...where
 the loop through the table causes a push to the backend form, and then a
 second refreshso, each record in the table is queried once, then
 updated with a color, then queried againas you can imagine, this gets
 very 'heavy' from a performance perspectiveso...after all of this is
 said and done, I think there are only two options truly in play

 1 - View form that calculates the color automatically in a DB view
 without any Remedy workflow
 2 - JavaScript magic

 The other options, as explored seem to either not work, or are too
 resource intensive.

 On Tue, Dec 9, 2014 at 11:13 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 Hi Charlie,

 Understood the case from you. So, I thought the AL field will work but
 it doesn't.

 Long story shorts. I managed to walk a table field and be set a value
 to selection-field. But it does not change to the display value. I.e.
 0=Red, 1=Yellow.
 So, even the value is set , I could not change the color.

 Anyone has an experience to walk-a-table fields in a selection-field of
 a join form.  Please let me know how.

 Thanks // Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎10/‎12/‎14 7:01 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents
 recordsover4hrinred color.

 **
 Omega,

 I've run a quick test and as I suspected the ARGetListEntryWithFields
 API is used to fill the table upon refresh, and it does NOT trigger the Get
 Entry filters of the entries retrieved.

 If you're interested, I've attached the form  filters I used for the
 test. Similar to your own requirement, the Get Entry filters will simply
 set a Display type selection field called 'Color Status' to Very Old if
 the entry was modified more than 5 minutes ago, Old if it was modified
 more than 3 minutes ago, otherwise New.

 Load these defs then add a few entries over the course of the next 5
 minutes or so. Run a normal search list and move through them entry by
 entry, running a filter log, to see that the Get Entry filters do in fact
 run (which is also evident since the 'Color Status' is being set).

 Then refresh the table while running a filter log and you will NOT see
 any of the filters being run.

 I think you'll need to consider one of the other solutions.

 -charlie

 On Tue, Dec 9, 2014 at 4:16 AM, Omega LiPO omegal...@gmail.com wrote:

 **
 Thanks. I knew the enable/disable filter log at server side and
 client.

 However, I did not get the time to test today.   I got a weird ideas
 to use on display active link to set the fields, and will try it tmr, to
 see if it can set the display-field under the table-field. Which I think 
 it
 might works.

 And will let you all knew the result. .

 Thank you // Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎9/‎12/‎14 12:29 PM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records
 over4hrinred color.

 **
 Omega,

 Here's a link
 https://docs.bmc.com/docs/display/public/ars81/Enabling+logs+for+performance+issues
 to relevant documentation on server side logging. I'm not quite clear on
 what you did not get, but to be clear I do mean that you should turn on 
 the
 filter log, refresh the table, turn off the filter log, and examine the
 results.  If things are working as you want them to, then you should see
 your Get Entry filter firing once for every entry retrieved in the table.

 This has actually got my curiosity peaked, so I'll probably try some
 testing myself tomorrow, though do let me know what you discover (or does
 someone else already know

Re: need some ideas from you how to show incidents recordsover4hrinred color.

2014-12-10 Thread Charlie Lotridge
So LJ or Fred, are you saying that when using display field as a column,
then set it during a table walk, the client will maintain the individual
values for each row?  This would effectively make the display field it an
array?

I'm probably misunderstanding, but if this is the case then having such a
client side array mechanism would open up all kinds of possibilities to
me.  It would be fascinating.

On Wed, Dec 10, 2014 at 8:46 AM, Grooms, Frederick W 
frederick.w.gro...@xo.com wrote:

 **

 I use it



 I have a list view table of values with a selection column that the user
 can double click to flag (sort of a multi-select menu).  That column is
 mapped to a local display only field.

 On save I use an AL Guide to walk the table to collect the flagged rows.  On
 Display I use a different guide to set the local display only field so the
 users can see what was selected



 Fred



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Wednesday, December 10, 2014 10:31 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: need some ideas from you how to show incidents
 recordsover4hrinred color.



 **

 LJ, you'd brought up a point that's been an outstanding question for me,
 and since we're on the topic...



 Why do display fields from the local form appear as options for columns
 for a table? I've never used this feature and don't quite know what it's
 for.



 Anyone use this? And if so how  why?
--

 On Wed, Dec 10, 2014 at 8:12 AM, LJ LongWing  wrote:

 **

 Sorry...forgot to credit the source of the 2 ideas I said were still in
 play :)
   --

 On Wed, Dec 10, 2014 at 9:09 AM, Charlie Lotridge  wrote:

 **

 Hmmm...let's see...



 Yeah, I'll vote for option number 1!  ;)



 -c
   --

 On Wed, Dec 10, 2014 at 7:34 AM, LJ LongWing  wrote:

 **

 Okso, I decided to spend some time playing with this this morning and
 ended up putting together a functional prototype, but I wouldn't implement
 this prototype in a production environment because of the
 client/server/network overhead associatedand I learned something new :)



 So...the 'new' thing that I learned is that when setting color of a table
 field, the field must be on the source form, not a display only on the
 current form...this is important because the field must be set at time of
 'refresh' of the table to set the colorso, this negates the loop
 through the table with AL Guide...except in the prototype I built...where
 the loop through the table causes a push to the backend form, and then a
 second refreshso, each record in the table is queried once, then
 updated with a color, then queried againas you can imagine, this gets
 very 'heavy' from a performance perspectiveso...after all of this is
 said and done, I think there are only two options truly in play



 1 - View form that calculates the color automatically in a DB view without
 any Remedy workflow

 2 - JavaScript magic



 The other options, as explored seem to either not work, or are too
 resource intensive.
--

 On Tue, Dec 9, 2014 at 11:13 PM, Omega LiPO  wrote:

 **

 Hi Charlie,

 Understood the case from you. So, I thought the AL field will work but it
 doesn't.

 Long story shorts. I managed to walk a table field and be set a value to
 selection-field. But it does not change to the display value. I.e. 0=Red,
 1=Yellow.
 So, even the value is set , I could not change the color.

 Anyone has an experience to walk-a-table fields in a selection-field of a
 join form.  Please let me know how.

 Thanks // Omega
   --

 *From: *Charlie Lotridge lotri...@mcs-sf.com
 *Sent: *‎10/‎12/‎14 7:01 AM


 *To: *arslist@ARSLIST.ORG
 *Subject: *Re: need some ideas from you how to show incidents
 recordsover4hrinred color.

 **

 Omega,



 I've run a quick test and as I suspected the ARGetListEntryWithFields API
 is used to fill the table upon refresh, and it does NOT trigger the Get
 Entry filters of the entries retrieved.



 If you're interested, I've attached the form  filters I used for the
 test. Similar to your own requirement, the Get Entry filters will simply
 set a Display type selection field called 'Color Status' to Very Old if
 the entry was modified more than 5 minutes ago, Old if it was modified
 more than 3 minutes ago, otherwise New.



 Load these defs then add a few entries over the course of the next 5
 minutes or so. Run a normal search list and move through them entry by
 entry, running a filter log, to see that the Get Entry filters do in fact
 run (which is also evident since the 'Color Status' is being set).



 Then refresh the table while running a filter log and you will NOT see any
 of the filters being run.



 I think you'll need to consider one of the other solutions.



 -charlie
   --

 On Tue

Re: need some ideas from you how to show incidents records over4hrinred color.

2014-12-09 Thread Charlie Lotridge
Omega,

I've run a quick test and as I suspected the ARGetListEntryWithFields API
is used to fill the table upon refresh, and it does NOT trigger the Get
Entry filters of the entries retrieved.

If you're interested, I've attached the form  filters I used for the test.
Similar to your own requirement, the Get Entry filters will simply set a
Display type selection field called 'Color Status' to Very Old if the
entry was modified more than 5 minutes ago, Old if it was modified more
than 3 minutes ago, otherwise New.

Load these defs then add a few entries over the course of the next 5
minutes or so. Run a normal search list and move through them entry by
entry, running a filter log, to see that the Get Entry filters do in fact
run (which is also evident since the 'Color Status' is being set).

Then refresh the table while running a filter log and you will NOT see any
of the filters being run.

I think you'll need to consider one of the other solutions.

-charlie

On Tue, Dec 9, 2014 at 4:16 AM, Omega LiPO omegal...@gmail.com wrote:

 **
 Thanks. I knew the enable/disable filter log at server side and client.

 However, I did not get the time to test today.   I got a weird ideas to
 use on display active link to set the fields, and will try it tmr, to see
 if it can set the display-field under the table-field. Which I think it
 might works.

 And will let you all knew the result. .

 Thank you // Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎9/‎12/‎14 12:29 PM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records
 over4hrinred color.

 **
 Omega,

 Here's a link
 https://docs.bmc.com/docs/display/public/ars81/Enabling+logs+for+performance+issues
 to relevant documentation on server side logging. I'm not quite clear on
 what you did not get, but to be clear I do mean that you should turn on the
 filter log, refresh the table, turn off the filter log, and examine the
 results.  If things are working as you want them to, then you should see
 your Get Entry filter firing once for every entry retrieved in the table.

 This has actually got my curiosity peaked, so I'll probably try some
 testing myself tomorrow, though do let me know what you discover (or does
 someone else already know the answer...?).

 Thanks,
 Charlie

 On Mon, Dec 8, 2014 at 2:40 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 Hi Charlie,

 How to do the filter-log ? You mean turn on the filter log. I did not get
 it.

 Thanks,
 Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎9/‎12/‎14 5:53 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records over
 4hrinred color.

 **
 Omega, run a filter log to make sure that the Get Entry filter is
 actually firing on each entry when you load (refresh) the table. I know
 that it'll fire when you access an individual entry on the source form
 (which uses the ARGetEntry API), but the table data retrieval probably uses
 the one of the APIs that retrieves multiple entries in a single call (e.g.
 ARGetListEntryWithFields, ARGetMultipleEntries, ARGetListEntryBlocks). I'm
 not sure if these will invoke the Get Entry filter on the individual
 entries (and don't have time to test it myself right now).

 Hope this helps.

 -charlie

 On Mon, Dec 8, 2014 at 1:43 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 I found it out this morning . And try it out. If I open the joined form,
 I see the color= can set to red or yellow. However, when I open the table
 field of such fields using display only form , the value did not show.
 Hmmm. I even set the filter order=0. I bet some ordering problem.

 Need more time to go testing tmr. Tks for your help.


 Regards,
 Omega
 --
 From: Grooms, Frederick W frederick.w.gro...@xo.com
 Sent: ‎9/‎12/‎14 5:26 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records
 over 4hrin red color.

 **

 It is just a filter set to fire on Get Entry of your form.  This filter
 fires each time a record is pulled from the database





 Fred



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Omega LiPO
 *Sent:* Saturday, December 06, 2014 1:38 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: need some ideas from you how to show incidents records
 over 4 hrin red color.



 **

 Hi Fred,

 Cool. This is what in my original ideas but I don't know this on get
 filter any quick screen dump about this on Get filter . Haha, I *only*
 know to use escalation to make the running-hr growth. Which needs to check
 the selection-color.

 Probably this is my first choice of testing on Monday morning. Thank
 you, Fred.

 Regards,
 Omega
  --

 *From: *Grooms, Frederick W frederick.w.gro...@xo.com
 *Sent: *‎6/‎12/‎14 1:30 AM
 *To: *arslist@ARSLIST.ORG
 *Subject: *Re: need some ideas from you how

Re: need some ideas from you how to show incidents records over 4hrin red color.

2014-12-08 Thread Charlie Lotridge
Omega, run a filter log to make sure that the Get Entry filter is actually
firing on each entry when you load (refresh) the table. I know that it'll
fire when you access an individual entry on the source form (which uses the
ARGetEntry API), but the table data retrieval probably uses the one of the
APIs that retrieves multiple entries in a single call (e.g.
ARGetListEntryWithFields, ARGetMultipleEntries, ARGetListEntryBlocks). I'm
not sure if these will invoke the Get Entry filter on the individual
entries (and don't have time to test it myself right now).

Hope this helps.

-charlie

On Mon, Dec 8, 2014 at 1:43 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 I found it out this morning . And try it out. If I open the joined form, I
 see the color= can set to red or yellow. However, when I open the table
 field of such fields using display only form , the value did not show.
 Hmmm. I even set the filter order=0. I bet some ordering problem.

 Need more time to go testing tmr. Tks for your help.


 Regards,
 Omega
 --
 From: Grooms, Frederick W frederick.w.gro...@xo.com
 Sent: ‎9/‎12/‎14 5:26 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records over
 4hrin red color.

 **

 It is just a filter set to fire on Get Entry of your form.  This filter
 fires each time a record is pulled from the database





 Fred



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Omega LiPO
 *Sent:* Saturday, December 06, 2014 1:38 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: need some ideas from you how to show incidents records
 over 4 hrin red color.



 **

 Hi Fred,

 Cool. This is what in my original ideas but I don't know this on get
 filter any quick screen dump about this on Get filter . Haha, I *only*
 know to use escalation to make the running-hr growth. Which needs to check
 the selection-color.

 Probably this is my first choice of testing on Monday morning. Thank you,
 Fred.

 Regards,
 Omega
  --

 *From: *Grooms, Frederick W frederick.w.gro...@xo.com
 *Sent: *‎6/‎12/‎14 1:30 AM
 *To: *arslist@ARSLIST.ORG
 *Subject: *Re: need some ideas from you how to show incidents records
 over 4 hrin red color.

 **

 I was about to say

  You know … This would be so much easier if you could use Display
 Only fields from the “source” or underlying form in a table field.



 I just realized that you can select a Display Only selection field on the
 source form for the Color attributes of a table field.   This should mean
 all you have to do is to add an “on Get” filter to the source form to set
 your color selection field.  No Escalation needed.



 Create Display Only fields on your source form to hold running-hr and
 color selection

 Create one or more “on Get” filters on the source form to do your
 calculations





 NOTE: I would use $SERVERTIMESTAMP$  instead of $TIMESTAMP$ so you get
 the exact time when the filter fires



 Fred



 *From:* Action Request System discussion list(ARSList) [
 mailto:arslist@ARSLIST.ORG arslist@ARSLIST.ORG] *On Behalf Of *Charlie
 Lotridge
 *Sent:* Friday, December 05, 2014 10:35 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: need some ideas from you how to show incidents records
 over 4 hr in red color.



 **

 Anyone who's read anything I've written over the past year (that I've been
 contributing here) knows I'm a big fan of using Remedy views over SQL
 views. And I've used this mechanism to implement exactly what you're
 looking for here, but without the table walk logic...much (much much)
 faster and more efficient since the database is doing all the work.



 In my case I wanted to implement something that showed a more typical
 aging (  30 days, 30-60 days, 60-90 days,  90 days) but like you I wanted
 these differences to show as colored rows in the table.  And while your
 requirement is to show aging measured in hours and mine is in days, the
 difference is irrelevant to the underlying solution.



 I'm not going to get into any detail here unless there's some interest
 that I do (it would take a bit of research  review to put it all
 together). I will mention, though, that the solution requires that the
 DB know the current time as a Unix epoch timestamp (and *accurately*,
 especially for your fine grained requirement). Of course all DB's know the
 current time, but accurately converting that to an epoch time (accurately!)
 can be a challenge.



 Since I use SQL Server and I'm a .NET guy, I was able to write a set of
 CLR stored procedures that manipulate timestamps at the DB level very
 quickly  efficiently, including one that returns the current time as an
 epoch timestamp. If you're also using SQL Server you'd be welcome to the
 source code for this (or even the compiled assembly if you prefer). But I
 don't have a comparable solution for any other DB platform.



 If you're interested in learning more let me know

Re: need some ideas from you how to show incidents records over 4hrinred color.

2014-12-08 Thread Charlie Lotridge
Omega,

Here's a link
https://docs.bmc.com/docs/display/public/ars81/Enabling+logs+for+performance+issues
to relevant documentation on server side logging. I'm not quite clear on
what you did not get, but to be clear I do mean that you should turn on the
filter log, refresh the table, turn off the filter log, and examine the
results.  If things are working as you want them to, then you should see
your Get Entry filter firing once for every entry retrieved in the table.

This has actually got my curiosity peaked, so I'll probably try some
testing myself tomorrow, though do let me know what you discover (or does
someone else already know the answer...?).

Thanks,
Charlie

On Mon, Dec 8, 2014 at 2:40 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 Hi Charlie,

 How to do the filter-log ? You mean turn on the filter log. I did not get
 it.

 Thanks,
 Omega
 --
 From: Charlie Lotridge lotri...@mcs-sf.com
 Sent: ‎9/‎12/‎14 5:53 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records over
 4hrinred color.

 **
 Omega, run a filter log to make sure that the Get Entry filter is actually
 firing on each entry when you load (refresh) the table. I know that it'll
 fire when you access an individual entry on the source form (which uses the
 ARGetEntry API), but the table data retrieval probably uses the one of the
 APIs that retrieves multiple entries in a single call (e.g.
 ARGetListEntryWithFields, ARGetMultipleEntries, ARGetListEntryBlocks). I'm
 not sure if these will invoke the Get Entry filter on the individual
 entries (and don't have time to test it myself right now).

 Hope this helps.

 -charlie

 On Mon, Dec 8, 2014 at 1:43 PM, Omega LiPO omegal...@gmail.com wrote:

 **
 I found it out this morning . And try it out. If I open the joined form,
 I see the color= can set to red or yellow. However, when I open the table
 field of such fields using display only form , the value did not show.
 Hmmm. I even set the filter order=0. I bet some ordering problem.

 Need more time to go testing tmr. Tks for your help.


 Regards,
 Omega
 --
 From: Grooms, Frederick W frederick.w.gro...@xo.com
 Sent: ‎9/‎12/‎14 5:26 AM

 To: arslist@ARSLIST.ORG
 Subject: Re: need some ideas from you how to show incidents records over
 4hrin red color.

 **

 It is just a filter set to fire on Get Entry of your form.  This filter
 fires each time a record is pulled from the database





 Fred



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Omega LiPO
 *Sent:* Saturday, December 06, 2014 1:38 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: need some ideas from you how to show incidents records
 over 4 hrin red color.



 **

 Hi Fred,

 Cool. This is what in my original ideas but I don't know this on get
 filter any quick screen dump about this on Get filter . Haha, I *only*
 know to use escalation to make the running-hr growth. Which needs to check
 the selection-color.

 Probably this is my first choice of testing on Monday morning. Thank you,
 Fred.

 Regards,
 Omega
  --

 *From: *Grooms, Frederick W frederick.w.gro...@xo.com
 *Sent: *‎6/‎12/‎14 1:30 AM
 *To: *arslist@ARSLIST.ORG
 *Subject: *Re: need some ideas from you how to show incidents records
 over 4 hrin red color.

 **

 I was about to say

  You know … This would be so much easier if you could use Display
 Only fields from the “source” or underlying form in a table field.



 I just realized that you can select a Display Only selection field on the
 source form for the Color attributes of a table field.   This should
 mean all you have to do is to add an “on Get” filter to the source form to
 set your color selection field.  No Escalation needed.



 Create Display Only fields on your source form to hold running-hr and
 color selection

 Create one or more “on Get” filters on the source form to do your
 calculations





 NOTE: I would use $SERVERTIMESTAMP$  instead of $TIMESTAMP$ so you get
 the exact time when the filter fires



 Fred



 *From:* Action Request System discussion list(ARSList) [
 mailto:arslist@ARSLIST.ORG arslist@ARSLIST.ORG] *On Behalf Of *Charlie
 Lotridge
 *Sent:* Friday, December 05, 2014 10:35 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: need some ideas from you how to show incidents records
 over 4 hr in red color.



 **

 Anyone who's read anything I've written over the past year (that I've
 been contributing here) knows I'm a big fan of using Remedy views over SQL
 views. And I've used this mechanism to implement exactly what you're
 looking for here, but without the table walk logic...much (much much)
 faster and more efficient since the database is doing all the work.



 In my case I wanted to implement something that showed a more typical
 aging (  30 days, 30-60 days, 60-90 days,  90 days) but like you I wanted
 these differences to show as colored rows

Re: need some ideas from you how to show incidents records over 4 hr in red color.

2014-12-05 Thread Charlie Lotridge
Anyone who's read anything I've written over the past year (that I've been
contributing here) knows I'm a big fan of using Remedy views over SQL
views. And I've used this mechanism to implement exactly what you're
looking for here, but without the table walk logic...much (much much)
faster and more efficient since the database is doing all the work.

In my case I wanted to implement something that showed a more typical aging
(  30 days, 30-60 days, 60-90 days,  90 days) but like you I wanted these
differences to show as colored rows in the table.  And while your
requirement is to show aging measured in hours and mine is in days, the
difference is irrelevant to the underlying solution.

I'm not going to get into any detail here unless there's some interest that
I do (it would take a bit of research  review to put it all together). I
will mention, though, that the solution requires that the DB know the
current time as a Unix epoch timestamp (and *accurately*, especially for
your fine grained requirement). Of course all DB's know the current time,
but accurately converting that to an epoch time (accurately!) can be a
challenge.

Since I use SQL Server and I'm a .NET guy, I was able to write a set of CLR
stored procedures that manipulate timestamps at the DB level very quickly 
efficiently, including one that returns the current time as an epoch
timestamp. If you're also using SQL Server you'd be welcome to the source
code for this (or even the compiled assembly if you prefer). But I don't
have a comparable solution for any other DB platform.

If you're interested in learning more let me know and perhaps it would be
most considerate to the rest of the community to take it offline.

-charlie

On Thu, Dec 4, 2014 at 12:38 PM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Omega,
 First off, I would be careful with an auto refresh every 5 min'sas
 well intentioned as that is, it can come with a cost, especially if the
 user that has that console up is a Floating user...

 Second...instead of an escalation keeping track of the age...I would think
 about using a 'local' field in your table, and using an AL Guide loop to
 loop over the contents of the table on refresh that sets the column to
 value in question

 I only recommend that if you have 'limited' data in your table, because
 the walk takes some time

 I have a table I do that sort of thing with that I limit to 50 records per
 chunk and it takes less than a second or two to walk the table and populate
 the data...

 On Thu, Dec 4, 2014 at 1:16 PM, Hon Li omegal...@gmail.com wrote:

 **

 I got some incident tickets.

 I managed to create an read-only form to show the un-closed tickets, and
 set an auto-refresh says 300 seconds by active-link.

 now my users would like to highlight those tickets in yellow in color if
 2-3 hr, and red in color if over 4-hr.

 So, I wonder if my following approach is correct or there is a better
 way.

 1. create a calculation fields says running-hr = timestamp - create-date
 2. create a selection-field [white, yellow, red]
 if running-hr = 4 , and selection field is not-red, set selection field
 to red
 if running-hr  2, 4 , and and selection-field is not yellow, set
 selection field to yellow
 else set selection to white ( or default as white)

 in the table-field, I can then set the color according to this selection
 field.
 To make this running-hr , adding, I use the escalation running every
 5-min to make the refresh frequency under the table.

 Question: do you think it will work ? have done the similar, and would it
 be a better approaches ? Please feel free to share me.

 many thanks from your help.

 Regards,
 Omega
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: .Net api 64 bit version

2014-11-13 Thread Charlie Lotridge
Hi Jean-Louis,

I have a 64 bit .net api for Remedy, but it's one that I wrote and is not
based on the community version.  A few facts about it...

- I began work on my .net API nearly 10 years ago because I needed one that
provided more functionality and flexibility than the community version did
at that time. Mine has now been in production use, in one way or another,
for over 7 years now (at clients such as Google  eBay/PayPal), so it's
very stable and robust.
- That said, I have not looked at the object model of the community version
since, nor have I ever familiarized myself with the object model in the
Java API, so I have no idea how closely mine matches those. However, it'd
be hard to imagine that they're very different.
- Mine is based on and uses the C API. So it was only with v8.1 (or was it
8.0?) when they published the 64 bit C API that I was able to upgrade to 64
bit.
- Since I've been pretty much the only user of this work, the external
documentation is lacking (which is primarily why I've never tried to
publish the work). But it's pretty well documented internally (for
intellisense).
- It's largely build using code generation tools I created that allow me to
very easily keep pace with new versions of Remedy and any changes they make
to the API.
- It covers most of the C API, though I have not yet coded for some of the
newer, more esoteric functions.
- It comes with add on tools such as ARFormToClass, a program that
creates a set of classes based on specific Remedy forms that allows for
very easy and type-safe (and tightly bound) programming against those
forms. Here's an example of making some changes to an imaginary Customer
form:

//
// Create the server connection
MCSARServer arServer = new MCSARServer(host, username, password);
//
// Loop thru the relevant Customers
foreach (CUSTForm.Entry custEntry in CUSTForm.Query(arServer, 'Status' =
\Sad\)) {
  //
  // Update the Status to be Happy
  custEntry.Status = CUSTForm.StatusType.Happy;
  //
  // Set the 'Formal Name' to a combination of the 'First Name' and 'Last
Name'
  custEntry.Formal_Name = custEntry.First_Name + ' ' + custEntry.Last_Name;
  //
  // Update the entry
  custEntry.SetEntry();
}

I recognize that you probably have a body of work based on the community
version and don't want to consider refactoring to use mine.  But if you do
find you're interested I'd be willing to consider distributing it to you,
including source code, under GPLv3. I'd also be happy to help bring you up
to speed on usage.

-charlie

On Wed, Nov 12, 2014 at 11:35 PM, Jean-Louis Halleux supp...@arsmarts.com
wrote:

 Hello listers,

 Does anyone know about a 64 bit version of the .net api ? Are there any
 plan to make them one day ?

 Thanks a lot for your input.

 Jean-Louis Halleux

 http://mailtrack.me/tracking/raWzMz50paMkCGR2ZGp1AQVjZGRzMKWjqzA2pzSaqaR9ZGRjZmpmAGt2Way2LKu2pG0mZwDjAmN0BQRjZD


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Bug using Status History value in filter Run If?

2014-11-04 Thread Charlie Lotridge
Is this a bug or am I doing something wrong? I'm pretty sure it's a bug,
but wanted to see if anyone has any insight or has seen this before.

Here's a simplified version of the situation:

I've got a Case form with a 'Status' that can be set to Draft, Open, or
Closed.

Users can't change the 'Status' directly, but through some action (e.g. a
button), workflow sends a signal to the Case to perform the appropriate
status change.

If a Case is Closed, it can be re-opened.  This means that when the
re-open signal is sent to the Case, the 'Status' will be set back to
Open if the Case had previously been Open.  Otherwise if it had never
been previously opened, it will be set to Draft.

This is (supposed to be) accomplished through a filter with the following
Run If qual:

('Status' = Closed) AND ('Status History.Open.TIME' = $NULL$)

If this is true, then the filter sets the 'Status' to Draft, otherwise it
sets it Open.

The problem I'm having is that it's always going down the true path and
setting it to Draft, even though the Case had definitely been open.

The bug, I think, is that the 'Status History.Open.TIME' is not correctly
getting any value.

I've verified that 'Status History.Open.TIME' *should *have a value a few
ways. First, I've cycled this Case through the various value several times
now and am positive it's been Open. Second, I've visually verified (using
the native Status History mechanism) that the Open TIME has a value. Third,
I inserted a Set Fields to pull the value into another temp field and do
see it correctly populating.

A few more notes...

I tried using the 'Status History.Open.USER' value also, but it's also not
getting a value: ('Status' = Closed) AND ('Status History.Open.TIME' =
$NULL$) AND ('Status History.Open.USER' = $NULL$)

I ran a SQL log and don't see it pulling the Status History values from the
database before it performs the Run If test.

After I added the Set Fields I mention above, I do then see it pulling the
values after the Run If test.

Aside: I discovered what might be another minor efficiency bug while
testing this: to fulfill this Set Fields which pulls both the $Status
History.Open.USER$ and $Status History.Open.TIME$ values from the Status
History, the server is actually running this SQL twice sequentially:

SELECT entryId,T0,U0,T1,U1,T2,U2 FROM H492 WHERE entryId =
N'LEDCASE-026'.

Clearly it's pulling ALL of the values it needs in a single run of the
query, but for some reason it's doing it twice.  For fun I also added
pulling $Status History.Draft.USER$ and $Status History.Draft.TIME$ and the
server correspondingly is running the SQL four times sequentially.

I can certainly think of strategies to work around this, but wanted to see
if anyone knows anything about it.

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Request ID Numbering recovery

2014-11-03 Thread Charlie Lotridge
Hi Keith,

So, it turns out you can just set the nextId column value in arschema to
the beginning of your missing sequence and you're good to go. While the
unique index violation that Rick mentions will happen, ARS seamlessly
handles the problem and will cycle until it finds an unused id.  I'd
thought this was the case, but just tested it out to make sure...

I have a form Test6 which had two entries in it using the first two ids
in the normal sequence SCT-001 and SCT-002 (SCT- is
of course the prefix on the request id).  I then updated the nextId to set
it back to 1:

UPDATE arschema
SET nextId = 1
WHERE name = 'Test6'

I then submitted a new entry into the form, and here's the relevant portion
of the SQL log:

/* Mon Nov 03 2014 10:25:55.5090 */BEGIN TRANSACTION
/* Mon Nov 03 2014 10:25:55.5090 */OK
/* Mon Nov 03 2014 10:25:55.5090 */UPDATE arschema SET nextId = nextId + 1
WHERE schemaId = 531
/* Mon Nov 03 2014 10:25:55.5120 */OK
/* Mon Nov 03 2014 10:25:55.5120 */SELECT nextId FROM arschema WHERE
schemaId = 531
/* Mon Nov 03 2014 10:25:55.5140 */OK
/* Mon Nov 03 2014 10:25:55.5140 */INSERT INTO T531 (C2,C7,C8,C3,C5,C6,C1)
VALUES (N'Admin',0,N'aaa',1415039155,N'Admin',1415039155,N'SCT-001')
/* Mon Nov 03 2014 10:25:55.6020 */* WARNING * The statement has been
terminated.
/* Mon Nov 03 2014 10:25:55.6020 */ROLLBACK TRANSACTION
/* Mon Nov 03 2014 10:25:55.6160 */OK
/* Mon Nov 03 2014 10:25:55.6160 */SELECT C1 FROM T531 WHERE C1 =
N'SCT-001'
/* Mon Nov 03 2014 10:25:55.6170 */OK
/* Mon Nov 03 2014 10:25:55.6170 */BEGIN TRANSACTION
/* Mon Nov 03 2014 10:25:55.6180 */OK
/* Mon Nov 03 2014 10:25:55.6180 */UPDATE arschema SET nextId = nextId + 1
WHERE schemaId = 531
/* Mon Nov 03 2014 10:25:55.6180 */OK
/* Mon Nov 03 2014 10:25:55.6180 */SELECT nextId FROM arschema WHERE
schemaId = 531
/* Mon Nov 03 2014 10:25:55.6180 */OK
/* Mon Nov 03 2014 10:25:55.6180 */COMMIT TRANSACTION
/* Mon Nov 03 2014 10:25:55.6190 */OK
/* Mon Nov 03 2014 10:25:55.6190 */SELECT C1 FROM T531 WHERE C1 =
N'SCT-001'
/* Mon Nov 03 2014 10:25:55.6200 */OK
/* Mon Nov 03 2014 10:25:55.6200 */BEGIN TRANSACTION
/* Mon Nov 03 2014 10:25:55.6200 */OK
/* Mon Nov 03 2014 10:25:55.6200 */UPDATE arschema SET nextId = nextId + 1
WHERE schemaId = 531
/* Mon Nov 03 2014 10:25:55.6200 */OK
/* Mon Nov 03 2014 10:25:55.6210 */SELECT nextId FROM arschema WHERE
schemaId = 531
/* Mon Nov 03 2014 10:25:55.6210 */OK
/* Mon Nov 03 2014 10:25:55.6210 */COMMIT TRANSACTION
/* Mon Nov 03 2014 10:25:55.6220 */OK
/* Mon Nov 03 2014 10:25:55.6220 */SELECT C1 FROM T531 WHERE C1 =
N'SCT-002'
/* Mon Nov 03 2014 10:25:55.6220 */OK
/* Mon Nov 03 2014 10:25:55.6220 */BEGIN TRANSACTION
/* Mon Nov 03 2014 10:25:55.6220 */OK
/* Mon Nov 03 2014 10:25:55.6220 */UPDATE arschema SET nextId = nextId + 1
WHERE schemaId = 531
/* Mon Nov 03 2014 10:25:55.6230 */OK
/* Mon Nov 03 2014 10:25:55.6230 */SELECT nextId FROM arschema WHERE
schemaId = 531
/* Mon Nov 03 2014 10:25:55.6230 */OK
/* Mon Nov 03 2014 10:25:55.6230 */COMMIT TRANSACTION
/* Mon Nov 03 2014 10:25:55.6240 */OK
/* Mon Nov 03 2014 10:25:55.6240 */SELECT C1 FROM T531 WHERE C1 =
N'SCT-003'
/* Mon Nov 03 2014 10:25:55.6240 */OK
/* Mon Nov 03 2014 10:25:55.6250 */BEGIN TRANSACTION
/* Mon Nov 03 2014 10:25:55.6250 */OK
/* Mon Nov 03 2014 10:25:55.6250 */INSERT INTO T531 (C2,C7,C8,C3,C5,C6,C1)
VALUES (N'Admin',0,N'aaa',1415039155,N'Admin',1415039155,N'SCT-003')
/* Mon Nov 03 2014 10:25:55.6260 */OK
/* Mon Nov 03 2014 10:25:55.6480 */INSERT INTO H531 (entryId,T0,U0) VALUES
(N'SCT-003',1415039155,N'Admin')
/* Mon Nov 03 2014 10:25:55.6500 */OK
/* Mon Nov 03 2014 10:25:55.6500 */COMMIT TRANSACTION
/* Mon Nov 03 2014 10:25:55.6510 */OK

You can see that it first attempts a normal operation: acquire the
nextId, bump it, then try to insert a record using it. But then you see
that this fails (no doubt due to that unique index violation, though that's
not evident in the log).  Next it goes into an exception mode where it
cycles through each subsequent value of nextId, asking the system if
there's a record using it until it finds one that's unused, then inserts
the record without error.

Obviously, this exception mode is comparatively very expensive, and that
expense is proportional to the size of the block (of used ids) it'll need
to skip over.  But it sounds like in your case this will happen only once
at some point in the future, so someone at some point will experience a
longer than usual delay when adding a record.

So, just issue this SQL:

UPDATE arschema
SET nextId = 6002
where name = 'your form name'

NOTE THAT if you have the Enable Next RequestID Block Size option
enabled, you may need to bounce the server (but maybe not). I do NOT have
it enabled on my Test6 form and did not have to bounce the server for it to
work correctly (I actually tried this a few times, SQL logging it each
time, and it worked as shown above each time).

-charlie

On Mon, Nov 3, 

Re: NOT SOLVED: PERFORM-ACTION-OPEN-URL to open internal network site

2014-10-10 Thread Charlie Lotridge
Two questions: First, are the files that you want to display always PDF's?
Second, are they accessible from the server?

If yes and yes, than an alternate solution is for you to construct server
workflow (using a service) that retrieves the file as an attachment and
passes it up to the client where you then present it using a
PERFORM-ACTION-OPEN-ATTACHMENT.  Of course, this solution requires that the
Adobe reader is available on the client's machine, but that's not too much
of an ask.

Just a suggestion...

-charlie

On Fri, Oct 10, 2014 at 9:43 AM, Sinclair, Keith ksincl...@shoppertrak.com
wrote:

 **

 Never mind, I stand corrected. This will work in the client tool but I
 cannot get it to run in Chrome or IE10 for the life of me. IE10 does
 nothing. Chrome opens up a blank window. All browser settings have been
 reset back to stock and pop up blockers are completely off.



 *From:* Sinclair, Keith
 *Sent:* Friday, October 10, 2014 10:27 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* SOLVED: PERFORM-ACTION-OPEN-URL to open internal network site



 I agree with Fred, as well.



 Looks like the “file://” did the trick. I had forgotten that was an option
 for browsers. Now my battle is for the file location folder permissions as
 I tried it on a publicly accessible network directory/file and was able to
 open it, but not my original document.



 *From:* Action Request System discussion list(ARSList) [
 mailto:arslist@ARSLIST.ORG arslist@ARSLIST.ORG] *On Behalf Of *LJ
 LongWing
 *Sent:* Friday, October 10, 2014 9:00 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: PERFORM-ACTION-OPEN-URL to open internal network site



 **

 I agree with Fred



 On Fri, Oct 10, 2014 at 7:54 AM, Sinclair, Keith 
 ksincl...@shoppertrak.com wrote:

 **

 So, I have a button that fires an AL with Run Process:
 PERFORM-ACTION-OPEN-URL \\NETWORK\Public\Site Management\Site
 Documents\$Site ID$.pdf.



 When I click on the button, nothing happens. The AL does fire, according
 to the logs.



 If I change the OPEN-URL to http://www.msn.com, it works. The button
 opens up MSN in a new browser window.



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *LJ LongWing
 *Sent:* Friday, October 10, 2014 8:45 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: PERFORM-ACTION-OPEN-URL to open internal network site



 **

 Keith,

 We would need a bit more information, such as 'What happens' when you
 trythere should be no difference between an external and an internal
 web/document, as long as you are using the properly formatted url.



 Have you run logs, what do they show.



 On Fri, Oct 10, 2014 at 7:42 AM, Sinclair, Keith 
 ksincl...@shoppertrak.com wrote:

 **

 Is there a way to open an internal document via the
 PERFORM-ACTION-OPEN-URL command? I have used this in the past and it worked
 but now I cannot get it to open a URL unless it’s an external website. If I
 try to open an internal link, the link appears to do nothing. Essentially,
 I am trying to achieve a link to a dynamic document repository. If there’s
 another way to do it, then I am all ears. I’ve tried multiple browsers but
 with the same results.



 Stuff:

 ARS 8.1

 MT 8.1

 Linux/Oracle backend.





 Thanks,



 *Keith Sinclair*

 *Remedy Development*

 *ShopperTrak  Chicago USA*

 O:  312.676.8289 |  M:  630.946.4744

 *ksincl...@shoppertrak.com ksincl...@shoppertrak.com* | @shoppertrak

 www.shoppertrak.com



 _ARSlist: Where the Answers Are and have been for 20 years_



 _ARSlist: Where the Answers Are and have been for 20 years_

 _ARSlist: Where the Answers Are and have been for 20 years_



 _ARSlist: Where the Answers Are and have been for 20 years_
  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: RRR|Chive vs. DDM

2014-10-07 Thread Charlie Lotridge
Hi Lyndsay,

A bit over a year ago I architected  implemented the data migration for my
client at the time, which involved an upgrade from 7.1 to 8.1, and a
migration of the data from Oracle to SQL Server.  Like you, we only wanted
to migrate a subset of the data and leave a whole bunch of garbage behind.

This custom solution had a Remedy based control and configuration
application along with a .NET executable. The control  config app was used
pretty simply to describe which forms we were interested in migrating along
with connection and authentication info. The exe then used this info to
affect the data transfer.

Unlike other Remedy based data migration tools out there, this solution did
NOT transfer the data through the Remedy servers, but instead used the ARS
data dictionary info about each of the required forms to dynamically
construct SQL statements which affected the data transfers through a
database link between the legacy and new DBs (e.g. SELECT INTO and UPDATE
FROM type statements).  It was very fast.

If you don't find another solution and are interested, I'd be happy to
provide more details about how this thing worked.

-charlie

On Tue, Oct 7, 2014 at 7:42 AM, Ben Chernys 
ben.cher...@softwaretoolhouse.com wrote:

 **

 There is also Meta-Update http://www.softwaretoolhouse.com/ and
 specifically the ITSM 7.1 Migration Package
 http://www.softwaretoolhouse.com/product/PkgMigItsm/index.html of
 scripts which allows you to change your companies, organization, people,
 support structure, product catalogue – and even Changes of type Release
 into Releases – along the way.



 No it is not free but the costs are small compared to the efforts saved.



 Contact me off list for more details or trials.



 Cheers



 Ben Chernys
 Senior Software Architect
 [image: logoSthInc-sm]

 Canada / Deutschland
 Mobile:  +49 171 380 2329GMT + 1 + [ DST ]
 Email:
 *Ben.Chernys_AT_softwaretoolhouse.com
 Ben.Chernys_AT_softwaretoolhouse.com*Web:
 www.softwaretoolhouse.com

 We are a BMC Technology Alliance Partner





 Check out Software Tool House's free Diary Editor and our  Freebies
 Section for ITSM Forms and Fields spreadsheet.

 *Meta-Update**,* our premium ARS Data tool, lets you automate your
 imports, migrations, *in no time at all*, without programming, without
 staging forms, without merge workflow.



 *Meta-Archive* does ITSM Archiving your way: with your forms and your
 multi-tenant rules, treating each root request as the tree of data and
 forms that it is it is.



 Pre ITSM 7.6.04?  Clarify?  Roll your own?  No problem!

 You can keep your valuable data!


 http://www.softwaretoolhouse.com/











 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Lyndsay Reese
 *Sent:* October-07-14 15:51
 *To:* arslist@ARSLIST.ORG
 *Subject:* RRR|Chive vs. DDM



 **

 Hello arslisters,

 I am in need of a good data migration tool to get all of our current
 ARS/ITSM 7.5 production data over to our new ARS/ITSM 8.1.01 fresh install
 server, with moderate customizations (we were not interested in copying our
 full prod db to the new server and then upgrading it, as it has had its own
 issues in the past with prior installs and upgrades and customizations).
 Therefore, the servers are not identical. The new server is built,
 customized, and UAT tested. We do have a development server where we took a
 db copy of prod, upgraded it to 8.1.01 (to match versions with the new
 server) and now we need to migrate the data. I've never used RRR|Chive or
 DDM. Is one better than the other for this type of migration?



 Thanks in advance for any thoughts/opinions/suggestions.



 Lyndsay

 _ARSlist: Where the Answers Are and have been for 20 years_

 No virus found in this message.
 Checked by AVG - www.avg.com
 Version: 2013.0.3485 / Virus Database: 4031/8340 - Release Date: 10/07/14
 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Diary field usage

2014-09-29 Thread Charlie Lotridge
I can't speak to best practices, but IMHO it really depends two things:
the expected size of the content and how you plan to use it.

With regard to the expected content, if you're planning to document
something with a relatively limited life-cycle and not a lot of content,
then I think diary fields are an excellent choice: they're very easy to
create and maintain and don't require setting up the child form, workflow,
and UI needed to support it that the PK/FK paradigm requires.

But if you're planning to document something with an indefinite life-cycle,
where the content may grow continuously, then diary fields become a bad
choice.  Remember that these are stored in your DB as a blob (text, ntext,
etc), so the entire content needs to be read and written on each access or
update (respectively).  What's worse is that this entire content needs to
be transferred over the wire multiple times (from DB to ARS to mid-tier to
client and back again). This obviously gets cumbersome when the content is
very large.

With regard to planned usage, if you're planning on setting up complex
searching (or reporting) on the content, diary fields are difficult to
use.  On the other hand, if you plan to use the content only for review
(e.g. users will only need to read through them to see what happened and
when), then diary fields are perfect for the job.

Hope this helps.

-charlie

On Mon, Sep 29, 2014 at 3:35 PM, Rick Cook remedyr...@gmail.com wrote:

 **
 Yes, they are not the best practice any more.  Best practice is to
 accumulate records in a back-end form and use a PK/FK relationship to tie
 them to a master record (i.e. Work Logs to an Incident.  Reporting can be
 challenging, but a join at the reporting level should make things easier.

 Rick Cook

 On Mon, Sep 29, 2014 at 3:30 PM, Reiser, John J john.j.rei...@lmco.com
 wrote:

 **
  Hello Listers,
  I have quick question.
 What is the general consensus on the use of Diary fields?
 Are they going out of style?
  I have tried a “work log” table type of design to replace the diary
 function on a form.
 This method works ok except when it comes time to run reports.
 Do you dump the table field data to a large character field?
 Or is there a slick way to incorporate the child records into the report
 on the fly?

 Thank you,
 ---
 John J. Reiser
 Remedy Developer/Administrator
 Senior Software Development Analyst
 Lockheed Martin - MS2
 The star that burns twice as bright burns half as long.
 Pay close attention and be illuminated by its brilliance. - paraphrased
 by me



  _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Server side filter log not getting captured!

2014-09-28 Thread Charlie Lotridge
Hi Ayushi,

Make sure the path for the log file is valid.  Or you could change it to a
path that you're sure IS valid.  Remember that the path is relative to the
machine on which that AR server is running.

Another thing, try viewing the file directly using Windows Explorer, rather
than that View button.  I've had weird results using it in the past, where
it would (consistently) show the most recent prior version of the file,
instead of the current content (I've since switched to always opening the
log files directly using Windows).

Hope this helps.

-charlie

On Sun, Sep 28, 2014 at 10:02 PM, Ayushi Agrawal 
ayushiagrawal2...@gmail.com wrote:

 Hi List,

 Can any one please help me here?

 I am unable to capture server side filter log from. I am using the
 following way to enable filter logs.

 AR System Administration- AR System Administration Console
 -System-General - Server Information-'Log Files' tab. But when I click
 the 'View' button next to filter log, it simply shows:

 Attchment Size (KB) :0.0

 Can you please assist me if I am missing anything here.

 Thanks in Advance,
 Ayushi Agrawal


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Escalation does not seem to complete its run over all the records..

2014-09-24 Thread Charlie Lotridge
First, and FYI, the filter counter that's used by the system to determine
if a transaction exceeds the filtering limit set for the system is reset
for every record process during an escalation.  It is NOT cumulative across
the entire run of the escalation.  So unless one of the records being
processed exceeds your 500K limit, your correct that it can't be the filter
limit.

I don't know anything about the specific forms or data you're dealing with
here, but is it possible that those 209 records only come to meet the
inclusion condition *after *the escalation begins its operation? Just like
many other things in the AR system, an escalation performs its query when
it first wakes up, and only operates on the records it finds with that
initial query.  If any records subsequently come to meet the condition they
won't be processed (until the next run of the escalation).

Hope this helps.

-charlie

On Wed, Sep 24, 2014 at 7:34 AM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I have a simple escalation that triggers on the form CTM:LoadPostalCodes
 with a condition



 'DL_Status' = Unvalidated



 During an initial run if there was no data in CTM:LoadPostalCodes, all
 records meet that condition.



 The escalation sets two fields in that form, z1D Action to VALIDATELOAD
 and DL_Status to Validated



 This triggers a bunch of out of the box data load filters, designed to
 validate and load the data in this form to the CTM:Postal Codes form.



 It works fine on almost all the records, except for 209 records in the end
 that do not get modified despite the fact they meet the condition on the
 Escalation.



 I have looked through the data in these 209 records, and nothing jumps up
 at me why this might be happening. The Error Flag is not set and the Last
 Modified Date does not change indicating that the Escalation did not even
 attempt to modify these records.



 I have a slight suspicion on max number of filters in an operation but
 somehow I doubt with just a little over 4000K records in that form to
 process, I would run over 50 filters as I doubt that there are over 100
 filters for each record even if it were promoted. Also if max filter limit
 was the case, the system should have handled the unprocessed records of the
 first run on the second run of the escalation, but that does not happen
 either.



 Any alternate theories as to what may be happening?



 I have not yet activated any logs but will later if I can’t determine what
 is causing this behavior just by comparing the data with the workflow.



 Joe
  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Escalation qualification : DSO

2014-09-08 Thread Charlie Lotridge
This is one of a few situations I've encountered where global fields at the
server level would be useful.

If we could create a global field with a lifespan of a transaction (or, in
this case, the run of the escalation), that retained its same value across
all records (of all forms) across the entire transaction, then you could
architect the workflow so that each record increments a global counter and
those after the 500th would disregard the operation.  There would still be
some minimal processing overhead for the the additional records  (those
over #500), but it should significantly mitigate the issue described.

Sorry for the sidetrack.

-charlie


On Mon, Sep 8, 2014 at 7:58 AM, Vikrant Kulkarni vikrant.rem...@gmail.com
wrote:

 **

 I would suggest look into RRR|Chive from rrr.se it just works fine in
 this case.
  On Sep 8, 2014 8:25 PM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 I don't believe so, an escalation will always iterate over all records
 that match the qual.


 On Mon, Sep 8, 2014 at 8:45 AM, MalviyaSaurabh 
 malviya.saurab...@gmail.com wrote:

 Hi All,
 I am in the process of archiving records in remedy. I have written an
 escalation with DSO action written which is working. I have the
 escalation
 qualification as
 ( 'Ticket Closed Date' = 2/28/2009 11:59:59 PM) AND ( 'Status' =
 Closed) AND ( 'Ticket Closed Date' = 1/1/2009 12:00:00 AM)
 As over 1 lac record are there in this timespan, there are overhead
 issues
 happening at the db level.

 Is there any way we can have the escalation run in batches of say 500
 records present in this qualification.

 Regards,
 Saurabh



 --
 View this message in context:
 http://ars-action-request-system.1.n7.nabble.com/Escalation-qualification-DSO-tp118847.html
 Sent from the ARS (Action Request System) mailing list archive at
 Nabble.com.


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


 _ARSlist: Where the Answers Are and have been for 20 years_

 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: *Ancient* bug with Set Field from a SQL transaction still present...

2014-09-04 Thread Charlie Lotridge
Agreed.  The Dev Studio (and Admin tool before it) is not in the business
of parsing complex SQL, so they punt on the issue and just count commas
(and add one).  They trust that you, the developer who wrote the SQL, will
know how many valid results there actually are.

And now on to the subject of using the DB to perform this (kind of)
operation...it's very expensive!  I know that sometimes it's the only way
to get something done, but should be avoided wherever possible.  I sure
hope you're not doing this from active link logic, I cringe at the number
of times this would need to hit the wire (6).

-charlie


On Thu, Sep 4, 2014 at 5:49 AM, Grooms, Frederick W 
frederick.w.gro...@xo.com wrote:

 **

 I’m not sure if it would be the API or just the code that is used in
 Developer Studio (Possibly the same code that was used in the Admin tool).



 When you do an SQL set fields DS does not actually run it to determine the
 number of columns in the output so it just makes the best guess it can on
 how many there will be.  I have seen this same scenario since at least
 version 5 with the Admin Tool.



 Fred



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Joe D'Souza
 *Sent:* Thursday, September 04, 2014 6:10 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* *Ancient* bug with Set Field from a SQL transaction still
 present...



 **

 I had found this bug a really long time ago on version 7.1.



 It still exists.



 I was trying Set Fields through SQL to capitalize the first letter of a
 word after the 6th character so this should have returned only $1$ as a
 possible choice of results.



 select substr('$FieldName$', 1, 6) || initcap(substr('$FieldName$', 7))
 from dual



 However, I get $1$, $2$, $3$ and $4$ to choose from. It appears like the
 ARSystem API looks at every comma between select and from and thinks that
 there are that many column values to return, which would explain the 4
 dollar columns in the result list to choose from.



 Fortunately using $1$ (which should have been the only choice to choose
 from) gets me the right results.



 Has anybody else reported this to BMC Support? I had reported this years
 ago but it appears like it has not yet got fixed. Fortunately, back then
 too, I needed just the first column so I did not have any real problem.



 I have not tested to see if I need more than one column, if the $
 variables would return the right results. Also I have not tested what $2$,
 $3$ and $4$ holds. Probably nulls. Or may return an error at run time if
 you select them.



 Cheers



 Joe




  _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: *Ancient* bug with Set Field from a SQL transaction still present...

2014-09-04 Thread Charlie Lotridge
FYI this comma counting only affects what appears in the list of field
choices.  There's nothing stopping you from hand typing, say, $10$ or $100$
into a Set Fields value, even if the drop-down shows only (say) 5 choices.
 Of course, your SQL had then better have at least that many columns of
data for this to make sense.

An example reason for this is a SELECT * FROM... sql statement.  Without
a very complex analysis of the DB's data dictionary, or somehow trying out
the SQL, there's no way for the Dev Studio to know how many columns might
be returned.  So, the value expression parser needs to allow you to
include *whatever
*$integer$ values you wish to include.

For fun I just tried including a $200$ in a value.  Worked fine.  And,
without any SQL, the list of field choices seems to default to showing $1$
through $10$.

-c


On Thu, Sep 4, 2014 at 10:43 AM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I saw it in 7.1 when I did a nested SQL statement that had many commas and
 had noticed that it was number of commas + 1 that the Admin Tool back then
 estimated the $ variables. Same as now. So that logic fails when you use
 functions that require more than one parameters separated by a comma.



 I did hear that was the case pre-7.1 too..



 It must be tricky when you are returning more than 1 column yeah?
 Fortunately for me both back then as well as now I needed only a single
 column returned by the SQL so the only value I had any interest in was $1$.



 Joe


  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Grooms, Frederick W
 *Sent:* Thursday, September 04, 2014 8:49 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: *Ancient* bug with Set Field from a SQL transaction still
 present...



 I’m not sure if it would be the API or just the code that is used in
 Developer Studio (Possibly the same code that was used in the Admin tool).



 When you do an SQL set fields DS does not actually run it to determine the
 number of columns in the output so it just makes the best guess it can on
 how many there will be.  I have seen this same scenario since at least
 version 5 with the Admin Tool.



 Fred



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Joe D'Souza
 *Sent:* Thursday, September 04, 2014 6:10 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* *Ancient* bug with Set Field from a SQL transaction still
 present...



 **

 I had found this bug a really long time ago on version 7.1.



 It still exists.



 I was trying Set Fields through SQL to capitalize the first letter of a
 word after the 6th character so this should have returned only $1$ as a
 possible choice of results.



 select substr('$FieldName$', 1, 6) || initcap(substr('$FieldName$', 7))
 from dual



 However, I get $1$, $2$, $3$ and $4$ to choose from. It appears like the
 ARSystem API looks at every comma between select and from and thinks that
 there are that many column values to return, which would explain the 4
 dollar columns in the result list to choose from.



 Fortunately using $1$ (which should have been the only choice to choose
 from) gets me the right results.



 Has anybody else reported this to BMC Support? I had reported this years
 ago but it appears like it has not yet got fixed. Fortunately, back then
 too, I needed just the first column so I did not have any real problem.



 I have not tested to see if I need more than one column, if the $
 variables would return the right results. Also I have not tested what $2$,
 $3$ and $4$ holds. Probably nulls. Or may return an error at run time if
 you select them.



 Cheers



 Joe
  _ARSlist: Where the Answers Are and have been for 20 years_ _ARSlist:
 Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Permission problem

2014-08-07 Thread Charlie Lotridge
I'm at a loss and would appreciate any suggestions on how to fix this.

I have a field on a form that has no privileges configured on it, so no one
but full admins should see it.  But for some reason an underprivileged user
account can see this field on the mid-tier running on the same machine,
call it machine QA.  I have the same form on a server  mid-tier running on
machine DEV, and the field is appropriately invisible to the (effectively)
same user account.

If I point DEV's mid-tier at server QA, the field is appropriately
invisible.

If I point QA's mid-tier at server DEV, the field is appropriately
invisible.

I've tried the above on different browsers running on different machines
with the same results.

So, it seems that the problem manifests ONLY when QA's mid-tier is pointing
at QA's server.

I've (of course) tried flushing the cache on QA's mid-tier, bouncing QA's
Tomcat, and even bouncing machine QA itself, but the problem persists.  And
during the these bounces, I've turned off QA's cache persistence but no joy.

The field (in this case) is a display field, so this is NOT an issue about
seeing or modifying data without appropriate privileges.  So I have no
reason to suspect a problem with ARS itself not enforcing permission
policies, and in fact the evidence (outlined above) would seem to suggest
something wrong with QA's mid-tier.  But it IS an issue (to me) that the
field is visible.

I've simplified my description here a bit and the problem does extend
beyond what I've described here.  But my guess is that if I can solve this
problem the other similar elements will resolve too.  Still, if appears
relevant I can describe more details.

All of the servers and mid-tiers are running v8.1.01

Has anyone seen this before?  Any suggestions on how to fix this?  I
haven't gone as far as uninstalling/reinstalling the mid-tier or tomcat
yet, do anyone think this will help?

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Permission problem

2014-08-07 Thread Charlie Lotridge
Ok!  Yes, that seems to have solved the problem.

I kind of thought that the cache persistence option was about keeping or
not keeping the contents of that directory, so didn't bother trying it.

What I didn't add earlier is that changes to the user account's permissions
(but not including adding Administrator) did resolve the problem, but only
for short periods of time.  It would then come back after a while.

I'm crossing my fingers that this solution will persist.

Thanks LJ!

-charlie


On Thu, Aug 7, 2014 at 8:06 AM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Charlie,
 Have you shut down Tomcat, deleted all of the contents of the 'cache'
 directory for Mid-Tier, and restarted?...this is moderately different than
 a 'Flush Cache' from the config console.


 On Thu, Aug 7, 2014 at 9:02 AM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:

 **
 I'm at a loss and would appreciate any suggestions on how to fix this.

 I have a field on a form that has no privileges configured on it, so no
 one but full admins should see it.  But for some reason an underprivileged
 user account can see this field on the mid-tier running on the same
 machine, call it machine QA.  I have the same form on a server  mid-tier
 running on machine DEV, and the field is appropriately invisible to the
 (effectively) same user account.

 If I point DEV's mid-tier at server QA, the field is appropriately
 invisible.

 If I point QA's mid-tier at server DEV, the field is appropriately
 invisible.

 I've tried the above on different browsers running on different machines
 with the same results.

 So, it seems that the problem manifests ONLY when QA's mid-tier is
 pointing at QA's server.

 I've (of course) tried flushing the cache on QA's mid-tier, bouncing QA's
 Tomcat, and even bouncing machine QA itself, but the problem persists.  And
 during the these bounces, I've turned off QA's cache persistence but no joy.

 The field (in this case) is a display field, so this is NOT an issue
 about seeing or modifying data without appropriate privileges.  So I have
 no reason to suspect a problem with ARS itself not enforcing permission
 policies, and in fact the evidence (outlined above) would seem to suggest
 something wrong with QA's mid-tier.  But it IS an issue (to me) that the
 field is visible.

 I've simplified my description here a bit and the problem does extend
 beyond what I've described here.  But my guess is that if I can solve this
 problem the other similar elements will resolve too.  Still, if appears
 relevant I can describe more details.

 All of the servers and mid-tiers are running v8.1.01

 Has anyone seen this before?  Any suggestions on how to fix this?  I
 haven't gone as far as uninstalling/reinstalling the mid-tier or tomcat
 yet, do anyone think this will help?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Permission problem

2014-08-07 Thread Charlie Lotridge
Thanks for these additional suggestions.

Lisa, yes, I did uncheck that option (but it didn't help).

Ryan, so far I've only deleted the cache directory.  If the problem
re-manifests I'll try your more extensive approach.

-charlie


On Thu, Aug 7, 2014 at 8:12 AM, Kemes, Lisa A DLA CTR INFORMATION
OPERATIONS lisa.kemes@dla.mil wrote:

 Make sure when you are flushing your local Browser cache (in IE) that the
 Preserve Favorites website data is UNCHECKED and that Form Data is
 CHECKED.

 Lisa

 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of LJ LongWing
 Sent: Thursday, August 07, 2014 11:07 AM
 To: arslist@ARSLIST.ORG
 Subject: Re: Permission problem

 **
 Charlie,
 Have you shut down Tomcat, deleted all of the contents of the 'cache'
 directory for Mid-Tier, and restarted?...this is moderately different than
 a 'Flush Cache' from the config console.


 On Thu, Aug 7, 2014 at 9:02 AM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:


 **
 I'm at a loss and would appreciate any suggestions on how to fix
 this.


 I have a field on a form that has no privileges configured on it,
 so no one but full admins should see it.  But for some reason an
 underprivileged user account can see this field on the mid-tier running on
 the same machine, call it machine QA.  I have the same form on a server 
 mid-tier running on machine DEV, and the field is appropriately invisible
 to the (effectively) same user account.

 If I point DEV's mid-tier at server QA, the field is appropriately
 invisible.

 If I point QA's mid-tier at server DEV, the field is appropriately
 invisible.

 I've tried the above on different browsers running on different
 machines with the same results.

 So, it seems that the problem manifests ONLY when QA's mid-tier is
 pointing at QA's server.

 I've (of course) tried flushing the cache on QA's mid-tier,
 bouncing QA's Tomcat, and even bouncing machine QA itself, but the problem
 persists.  And during the these bounces, I've turned off QA's cache
 persistence but no joy.

 The field (in this case) is a display field, so this is NOT an
 issue about seeing or modifying data without appropriate privileges.  So I
 have no reason to suspect a problem with ARS itself not enforcing
 permission policies, and in fact the evidence (outlined above) would seem
 to suggest something wrong with QA's mid-tier.  But it IS an issue (to me)
 that the field is visible.

 I've simplified my description here a bit and the problem does
 extend beyond what I've described here.  But my guess is that if I can
 solve this problem the other similar elements will resolve too.  Still, if
 appears relevant I can describe more details.

 All of the servers and mid-tiers are running v8.1.01

 Has anyone seen this before?  Any suggestions on how to fix this?
  I haven't gone as far as uninstalling/reinstalling the mid-tier or tomcat
 yet, do anyone think this will help?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Permission problem

2014-08-07 Thread Charlie Lotridge
Greg, I'm also concerned about the problem coming back (I mentioned in
another email I've also seen this happen). Did you ever try manually
clearing the cache directories as LJ  Ryan suggested?

-charlie


On Thu, Aug 7, 2014 at 8:23 AM, Givens, Gregory CTR NPC, Pers 54 
gregory.givens@navy.mil wrote:

 I've seen this on my system before and it was always with a field with no
 permissions assigned.
 Flushing the cache resolves it sometimes, but I've seen it come back after
 subsequent flushes.

 Try assigning an un-used permissions group to the field.

 Greg

 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Charlie Lotridge
 Sent: Thursday, August 07, 2014 10:03 AM
 To: arslist@ARSLIST.ORG
 Subject: Permission problem

 **
 I'm at a loss and would appreciate any suggestions on how to fix this.


 I have a field on a form that has no privileges configured on it, so no
 one but full admins should see it.  But for some reason an underprivileged
 user account can see this field on the mid-tier running on the same
 machine, call it machine QA.  I have the same form on a server  mid-tier
 running on machine DEV, and the field is appropriately invisible to the
 (effectively) same user account.

 If I point DEV's mid-tier at server QA, the field is appropriately
 invisible.

 If I point QA's mid-tier at server DEV, the field is appropriately
 invisible.

 I've tried the above on different browsers running on different machines
 with the same results.

 So, it seems that the problem manifests ONLY when QA's mid-tier is
 pointing at QA's server.

 I've (of course) tried flushing the cache on QA's mid-tier, bouncing QA's
 Tomcat, and even bouncing machine QA itself, but the problem persists.  And
 during the these bounces, I've turned off QA's cache persistence but no joy.

 The field (in this case) is a display field, so this is NOT an issue about
 seeing or modifying data without appropriate privileges.  So I have no
 reason to suspect a problem with ARS itself not enforcing permission
 policies, and in fact the evidence (outlined above) would seem to suggest
 something wrong with QA's mid-tier.  But it IS an issue (to me) that the
 field is visible.

 I've simplified my description here a bit and the problem does extend
 beyond what I've described here.  But my guess is that if I can solve this
 problem the other similar elements will resolve too.  Still, if appears
 relevant I can describe more details.

 All of the servers and mid-tiers are running v8.1.01

 Has anyone seen this before?  Any suggestions on how to fix this?  I
 haven't gone as far as uninstalling/reinstalling the mid-tier or tomcat
 yet, do anyone think this will help?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Permission problem

2014-08-07 Thread Charlie Lotridge
And hold my breath until it that fix comes out?  :)

I put in a ticket a couple years back now about how an import of an XML
definition file containing a form with more than 90 (or ninety something, I
forget now) fields would fail.  It got logged as a bug and I'm still
anxiously waiting for that fix to show up in a release!

Alright, maybe not so anxiously as I've long since worked around the
problem.

And since it would appear that this issue isn't affecting many people, it
would understandable not be a priority to BMC.  This problem would probably
rate the same as my XML import problem.

But what I'm really hoping that your suggested fix has eliminated the
problem from my system (whereas perhaps my previous attempts flushing the
cache or changing permissions only masked it temporarily somehow).  I'm
also hoping that since the problem isn't affecting many people, this means
that whatever caused the problem in the first place is a corner case and is
unlikely to happen to me again.


On Thu, Aug 7, 2014 at 9:07 AM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Welleven if this 'fixes' it, you need to address the 'why'
 eventually...and the only person that can address that is BMC...and being
 you are running the latest version, latest service pack, latest
 patchthere would obviously need to be another fix put in place.


 On Thu, Aug 7, 2014 at 10:05 AM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:

 **
 Greg, I'm also concerned about the problem coming back (I mentioned in
 another email I've also seen this happen). Did you ever try manually
 clearing the cache directories as LJ  Ryan suggested?

 -charlie


 On Thu, Aug 7, 2014 at 8:23 AM, Givens, Gregory CTR NPC, Pers 54 
 gregory.givens@navy.mil wrote:

 I've seen this on my system before and it was always with a field with
 no permissions assigned.
 Flushing the cache resolves it sometimes, but I've seen it come back
 after subsequent flushes.

 Try assigning an un-used permissions group to the field.

 Greg

 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Charlie Lotridge
 Sent: Thursday, August 07, 2014 10:03 AM
 To: arslist@ARSLIST.ORG
 Subject: Permission problem

 **
 I'm at a loss and would appreciate any suggestions on how to fix this.


 I have a field on a form that has no privileges configured on it, so no
 one but full admins should see it.  But for some reason an underprivileged
 user account can see this field on the mid-tier running on the same
 machine, call it machine QA.  I have the same form on a server  mid-tier
 running on machine DEV, and the field is appropriately invisible to the
 (effectively) same user account.

 If I point DEV's mid-tier at server QA, the field is appropriately
 invisible.

 If I point QA's mid-tier at server DEV, the field is appropriately
 invisible.

 I've tried the above on different browsers running on different machines
 with the same results.

 So, it seems that the problem manifests ONLY when QA's mid-tier is
 pointing at QA's server.

 I've (of course) tried flushing the cache on QA's mid-tier, bouncing
 QA's Tomcat, and even bouncing machine QA itself, but the problem persists.
  And during the these bounces, I've turned off QA's cache persistence but
 no joy.

 The field (in this case) is a display field, so this is NOT an issue
 about seeing or modifying data without appropriate privileges.  So I have
 no reason to suspect a problem with ARS itself not enforcing permission
 policies, and in fact the evidence (outlined above) would seem to suggest
 something wrong with QA's mid-tier.  But it IS an issue (to me) that the
 field is visible.

 I've simplified my description here a bit and the problem does extend
 beyond what I've described here.  But my guess is that if I can solve this
 problem the other similar elements will resolve too.  Still, if appears
 relevant I can describe more details.

 All of the servers and mid-tiers are running v8.1.01

 Has anyone seen this before?  Any suggestions on how to fix this?  I
 haven't gone as far as uninstalling/reinstalling the mid-tier or tomcat
 yet, do anyone think this will help?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: EXTERNAL: Re: using SQL soundex function to find similar names

2014-08-04 Thread Charlie Lotridge
John,

As you've probably guessed the N in the N'whatever' is normal for a
unicode server - it's telling the DB to consider the string a unicode
string.

That really is a very strange problem.  You could still try the step 2 I
described to try to directly issue just SELECT 'S363' instead of the
SOUNDEX to make sure a normal string is making it into the field to which
would then seem to imply it's somehow something about the particular about
the string as returned from SOUNDEX.

Probably a stupid question, but have you run a filter log merged with your
sql log to make sure that some filter isn't nulling the field before it
gets written to the DB?

-charlie


On Mon, Aug 4, 2014 at 8:59 AM, Reiser, John J john.j.rei...@lmco.com
wrote:

 **

 Charlie,



 I did as you suggested. The workflow showed up as select soundex(N’STEHRT’)

 I never saw the “N” before. I see it in other logs now too.

 So I ran that statement and it returns S363 but in the log file it sets
 the Lname_soundex field to “”

 The update statement later in the log shows C672201002=N''



 So I put Select ‘S363’ into my filter and ran a modify that would fire the
 filter.

 It placed S363 into the Lname_soundex field just as it should.





 I’ll give the Update statement a try.







 Thank you,

 ---
 John J. Reiser
 Remedy Developer/Administrator

 Senior Software Development Analyst
 Lockheed Martin - MS2
 The star that burns twice as bright burns half as long.
 Pay close attention and be illuminated by its brilliance. - paraphrased by
 me



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Thursday, July 31, 2014 11:37 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* EXTERNAL: Re: using SQL soundex function to find similar names



 **

 John,



 This is a pretty strange problem you're having, and I can suggest the
 following steps to *try* to figure out what's going on:



 1) Run a SQL log and capture the actual SQL being issued to generate the
 soundex value, then run it in a query window in the MS SQL Management
 Studio.  Make sure it's doing what you expect.



 2) Take the actual string returned by the SQL above and put it directly
 into the Set Fields' SELECT statement.  E.g. SELECT 'G123'.  Then make
 sure that the value G123 is being returned to the Lname_Soundex field.



 But if all this fails to yield anything useful, you can probably just work
 around the problem by updating the Lname_Soundex field directly using a
 Direct SQL action in a filter:



 UPDATE The Form's View Name

 SET Lname_Soundex = SOUNDEX(User_Last_Name)



 Of course, this is problematic during a CREATE operation, so don't bother
 trying during a Submit triggered filter.  But a work-around to THIS is to
 have a Submit triggered filter do a Push Fields to the same record to
 trigger the filter that runs that Direct SQL (which probably just should
 run with the qualification 'User Last Name' != $NULL$ AND 'Lname_Soundex' =
 $NULL$).  Of course be sure the filter doing this Push Fields does not have
 the tick-bang (`!) suffix - you don't want the Push Fields happening before
 the record is actually created in the DB.



 If the problem is isolated to just this Lname_Soundex situation then this
 should be a sufficient workaround: you don't ever *really* need to
 visualize the soundex data at the app level anyway (do you?).  And you've
 seemed to indicate that this is true (it's isolated).  If it's not
 isolated, then, obviously, you really need to figure out what's going on as
 this is probably causing data corruption.



 If any of this is not clear let me know.



 -charlie



 On Thu, Jul 31, 2014 at 8:02 AM, Reiser, John J john.j.rei...@lmco.com
 wrote:

 Fred,
 Wouldn't that cause problems with all set fields actions where I'm getting
 data from other forms or is it because the function is modifying and
 returning a value?
 I'll look around to see what I can find.


 Thank you,
 ---
 John J. Reiser
 Remedy Developer/Administrator
 Senior Software Development Analyst
 Lockheed Martin - MS2
 The star that burns twice as bright burns half as long.
 Pay close attention and be illuminated by its brilliance. - paraphrased by
 me

   -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Grooms, Frederick W
 Sent: Thursday, July 31, 2014 10:12 AM
 To: arslist@ARSLIST.ORG
 Subject: EXTERNAL: Re: using SQL soundex function to find similar names

 Remember . The thick client (Windows User Tool) is not truly Unicode
 compliant

 It sounds like you may have some sort of mismatch in the character sets
 (between SQL, the server, and the client)

 Fred

 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Reiser, John J
 Sent: Thursday, July 31, 2014 8:50 AM
 To: arslist@ARSLIST.ORG
 Subject: using SQL soundex function to find similar names

 **
 Hello

Re: using SQL soundex function to find similar names

2014-07-31 Thread Charlie Lotridge
John,

This is a pretty strange problem you're having, and I can suggest the
following steps to *try* to figure out what's going on:

1) Run a SQL log and capture the actual SQL being issued to generate the
soundex value, then run it in a query window in the MS SQL Management
Studio.  Make sure it's doing what you expect.

2) Take the actual string returned by the SQL above and put it directly
into the Set Fields' SELECT statement.  E.g. SELECT 'G123'.  Then make
sure that the value G123 is being returned to the Lname_Soundex field.

But if all this fails to yield anything useful, you can probably just work
around the problem by updating the Lname_Soundex field directly using a
Direct SQL action in a filter:

UPDATE The Form's View Name
SET Lname_Soundex = SOUNDEX(User_Last_Name)

Of course, this is problematic during a CREATE operation, so don't bother
trying during a Submit triggered filter.  But a work-around to THIS is to
have a Submit triggered filter do a Push Fields to the same record to
trigger the filter that runs that Direct SQL (which probably just should
run with the qualification 'User Last Name' != $NULL$ AND 'Lname_Soundex' =
$NULL$).  Of course be sure the filter doing this Push Fields does not have
the tick-bang (`!) suffix - you don't want the Push Fields happening before
the record is actually created in the DB.

If the problem is isolated to just this Lname_Soundex situation then this
should be a sufficient workaround: you don't ever *really* need to
visualize the soundex data at the app level anyway (do you?).  And you've
seemed to indicate that this is true (it's isolated).  If it's not
isolated, then, obviously, you really need to figure out what's going on as
this is probably causing data corruption.

If any of this is not clear let me know.

-charlie


On Thu, Jul 31, 2014 at 8:02 AM, Reiser, John J john.j.rei...@lmco.com
wrote:

 Fred,
 Wouldn't that cause problems with all set fields actions where I'm getting
 data from other forms or is it because the function is modifying and
 returning a value?
 I'll look around to see what I can find.

 Thank you,
 ---
 John J. Reiser
 Remedy Developer/Administrator
 Senior Software Development Analyst
 Lockheed Martin - MS2
 The star that burns twice as bright burns half as long.
 Pay close attention and be illuminated by its brilliance. - paraphrased by
 me


 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Grooms, Frederick W
 Sent: Thursday, July 31, 2014 10:12 AM
 To: arslist@ARSLIST.ORG
 Subject: EXTERNAL: Re: using SQL soundex function to find similar names

 Remember . The thick client (Windows User Tool) is not truly Unicode
 compliant

 It sounds like you may have some sort of mismatch in the character sets
 (between SQL, the server, and the client)

 Fred

 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Reiser, John J
 Sent: Thursday, July 31, 2014 8:50 AM
 To: arslist@ARSLIST.ORG
 Subject: using SQL soundex function to find similar names

 **
 Hello Listers,
 ARS 8.1.00
 MS SQL 2008
 MS OS 2008 R2

 While I'm working on my DSO issues and the report publisher I also came
 across a problem in some workflow.

 I've been calling the soundex() function for years in my Customer Form to
 make it easier to look for names that may be spelled incorrectly.
 You know Smith instead of Smyth and such.

 Since we've moved to the new system the set fields action is returning
 non-displayable characters  in the thick client and what looks to me like
 oriental characters in Mid Tier.
 Is this a Unicode setting or does ARS 8.1 not handle the returned varchar
 properly?

 I just run a Set Fields filter using SQL as the data source with a query
 of SELECT SOUNDEX('$User Last Name$') Then I set my field Lname_Soundex
 with $1$

 Can this be corrected or is there a better way to search and manage
 similar names?

 Thank you,
 ---
 John J. Reiser
 Remedy Developer/Administrator
 Senior Software Development Analyst
 Lockheed Martin - MS2
 The star that burns twice as bright burns half as long.
 Pay close attention and be illuminated by its brilliance. - paraphrased by
 me





 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Where the
 Answers Are, and have been for 20 years


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: View DDL for ARSystem tables

2014-06-12 Thread Charlie Lotridge
Hi Karthik,

The way to solve this problem is to use logging.  Turn on SQL logging on
the server to identify *exactly* the SQL statement causing the error.  You
probably should also turn on Filter logging (and direct them into the same
file) so that you can see if the SQL is being caused by some filter
(perhaps, say, a Push Fields from the form you've been looking at, and that
you've seen does NOT have any unique index, to some other form which DOES
have a unique index).

Be sure to enable the logging just before performing the offending
transaction, and turn it off just after.

When you review the resulting log, chances are you'll see that the error is
being caused by a SQL statement that begins with:

UPDATE Tsome form number SET Csome field number = some value...

If it's not already obvious from the filter logging which is the problem
form, use this in a SQL Query window to identify the form:

SELECT name
FROM arschema
WHERE schemaId = some form number

where, probably obviously, some form number here is the number next to
the T in the UPDATE statement as shown above.

Hopefully this is all clear and easy to follow.  Let me know, though, if
you have any questions.

-charlie


On Thu, Jun 12, 2014 at 7:19 AM, karthik manoharan karthikma...@gmail.com
wrote:

 **

 Hello Listers,

  We have our ARSystem server installed on SQL server, there is a strange
 thing noticed for one of the forms which throws “Unique Index”error on
 creating duplicate records. I have checked the Indexes defined for the form
 but it doesn’t have “Unique Index” enabled.

  So, I would like to view the Table Definition such that I could identify
 any primary key or constraints on the attribute. Is there a way to view the
 DDL for the tables in AR system schema.

  PS: I use SQL Server Management Studio to connect.

 Regards,
 Karthik
 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: View Form Not Picking Up Char(1) columns

2014-06-11 Thread Charlie Lotridge
Hi John,

Are you running a unicode server?  My guess is that you are, in which case
it's only going to recognize nchar/nvarchar and is not going to recognize
char/varchar column types.

If this is the case, and IF you really meant it when you wrote need to be
able to SEE these values (and not modify), then what you need to do is
create a SQL view on top of the table that casts the char/varchar columns
to appropriate nchar/nvarchar types:

CREATE VIEW ViewName AS
SELECT
...
CAST(CHAR1TypeColumn AS NCHAR(1)) AS OriginalColumnName,
...
FROM YourTable

Next, create your Remedy view on top of this new SQL view, and it should
work fine.

Again, to be clear, this solution is for READING the data.  I'm not sure
how well it would work if you attempted to modify data through the view.

If this isn't clear and you are willing to provide specifics, I'd be happy
to help craft the create statement for the SQL view.

-charlie



On Wed, Jun 11, 2014 at 10:10 AM, Mr Bodie bodi...@hotmail.com wrote:

 **
 Hi folks,

 Need some help again.

 I created a view form in remedy but I notice that I does not show any of
 the columns in the table that are Char(1).

 This is a major problem for us as we need to be able to see these values

 Can anyone think of why this would be? All the other columns come across
 fine. ARSYSTEM is the owner so its not a permissions thing.

 Database is SQL server 2008r2

 Thanks

 John
  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Remedy Developer Performance Metrics

2014-06-04 Thread Charlie Lotridge
 Lotridge lotri...@mcs-sf.com
 wrote:

 **
 LJ says 'performance metrics suck and don't work the way they are
 intended'.  So, do you feel strongly about this?  Yikes! ;)

 Really, though, while I didn't participate or even see any of those
 prior conversations about this subject, a couple points occur to me...

 First, while you're of course entitled to your opinion, I hope your
 blanket dismissal of the subject doesn't discourage others from voicing
 theirs.  If the topic annoys you - and it seems to - my apologies.  Not my
 intention.

 Second, I'd agree that no one metric can accurately say anything about
 anyone. My one metric examples were just given to spur the conversation.
 And perhaps others have more nuanced answers that involve more than one
 metric and include qualifications.  I'd be interested in hearing about
 those.  As a software engineer (my background), one of the metrics that
 has been used to judge my work has been lines of code.  In and of itself
 it's not a useful metric, but combine with other factors it can help
 provide a broad picture of the performance of different developers.

 Third, having such data doesn't make it bad or wrong data, it depends
 on how the data is used just like any other data.  If used constructively,
 such metrics could, for example, be used to help assess a developer's
 strengths and weaknesses with perhaps the goal of working/educating the
 developer to shore up those weaknesses.  And while it's certainly true that
 information like this can be misused, it doesn't mean we shouldn't have the
 conversation.

 Fourth, there ARE clear differences in the performance of different
 developers.  Sometimes there are very valid reasons to judge the relative
 performance of developers.  Sometimes it's because hard choices have to be
 made like downsizing.  Is it better in these situations for the manager to
 just pick the individual(s) they like the least?  Or who they *think* are
 the least productive?  I smell a lawsuit.  Wouldn't hard metrics be useful
 in these cases?

 Finally, a disclaimer: I don't now or have any near future plans to use
 such metrics to evaluate anyone...I don't have anyone to evaluate.  And
 while my interest in the topic is more than just idle curiosity, I won't be
 using it to fire anyone soon.  For me, this information is more for
 research purposes.

 Thanks,
 Charlie


  On Tue, Jun 3, 2014 at 3:03 PM, LJ LongWing lj.longw...@gmail.com
 wrote:

 **
 My opinion is that 'performance metrics suck and don't work the way they
 are intended'.  There has been healthy debate over the years regarding
 exactly that subject, and every time it's happened, either on the list or
 otherwise, it ends up being that no one 'metric' can accurately say that
 this developer is doing 'better' than another developer.


 On Tue, Jun 3, 2014 at 3:46 PM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:

 **
 Hi all,

 I'm curious...what are your opinions about what might be useful metrics
 to use to judge the performance of Remedy developers?  To narrow the
 conversation a bit, let's just talk about during the creation of a new
 custom application, or custom module to an existing application.  In other
 words for code generation.

 So for example, you might tell me that a good developer can create at
 least 50 logic objects (active links/filters/escalations) in a day.  Or
 create  format one form/day.

 What are you opinions?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Remedy Developer Performance Metrics

2014-06-03 Thread Charlie Lotridge
Hi all,

I'm curious...what are your opinions about what might be useful metrics to
use to judge the performance of Remedy developers?  To narrow the
conversation a bit, let's just talk about during the creation of a new
custom application, or custom module to an existing application.  In other
words for code generation.

So for example, you might tell me that a good developer can create at least
50 logic objects (active links/filters/escalations) in a day.  Or create 
format one form/day.

What are you opinions?

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Remedy Developer Performance Metrics

2014-06-03 Thread Charlie Lotridge
LJ says 'performance metrics suck and don't work the way they are
intended'.  So, do you feel strongly about this?  Yikes! ;)

Really, though, while I didn't participate or even see any of those prior
conversations about this subject, a couple points occur to me...

First, while you're of course entitled to your opinion, I hope your blanket
dismissal of the subject doesn't discourage others from voicing theirs.  If
the topic annoys you - and it seems to - my apologies.  Not my intention.

Second, I'd agree that no one metric can accurately say anything about
anyone. My one metric examples were just given to spur the conversation.
And perhaps others have more nuanced answers that involve more than one
metric and include qualifications.  I'd be interested in hearing about
those.  As a software engineer (my background), one of the metrics that has
been used to judge my work has been lines of code.  In and of itself it's
not a useful metric, but combine with other factors it can help provide a
broad picture of the performance of different developers.

Third, having such data doesn't make it bad or wrong data, it depends on
how the data is used just like any other data.  If used constructively,
such metrics could, for example, be used to help assess a developer's
strengths and weaknesses with perhaps the goal of working/educating the
developer to shore up those weaknesses.  And while it's certainly true that
information like this can be misused, it doesn't mean we shouldn't have the
conversation.

Fourth, there ARE clear differences in the performance of different
developers.  Sometimes there are very valid reasons to judge the relative
performance of developers.  Sometimes it's because hard choices have to be
made like downsizing.  Is it better in these situations for the manager to
just pick the individual(s) they like the least?  Or who they *think* are
the least productive?  I smell a lawsuit.  Wouldn't hard metrics be useful
in these cases?

Finally, a disclaimer: I don't now or have any near future plans to use
such metrics to evaluate anyone...I don't have anyone to evaluate.  And
while my interest in the topic is more than just idle curiosity, I won't be
using it to fire anyone soon.  For me, this information is more for
research purposes.

Thanks,
Charlie


On Tue, Jun 3, 2014 at 3:03 PM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 My opinion is that 'performance metrics suck and don't work the way they
 are intended'.  There has been healthy debate over the years regarding
 exactly that subject, and every time it's happened, either on the list or
 otherwise, it ends up being that no one 'metric' can accurately say that
 this developer is doing 'better' than another developer.


 On Tue, Jun 3, 2014 at 3:46 PM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:

 **
 Hi all,

 I'm curious...what are your opinions about what might be useful metrics
 to use to judge the performance of Remedy developers?  To narrow the
 conversation a bit, let's just talk about during the creation of a new
 custom application, or custom module to an existing application.  In other
 words for code generation.

 So for example, you might tell me that a good developer can create at
 least 50 logic objects (active links/filters/escalations) in a day.  Or
 create  format one form/day.

 What are you opinions?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Remedy Developer Performance Metrics

2014-06-03 Thread Charlie Lotridge
Dave,

Ok, fair enough.  And I agree there are a lot of
qualifications/considerations.

I'm seeing now, though, that I posed too broad (and sensitive) a question.
 Let me try a different angle on this, which should be sufficient for my
needs:

On a good day, and if it's all you had to do, about how many workflow
objects (AL's, filters, escalations) can you create (minimum, maximum, and
average)?

For me, if it's very complex workflow, it might be as low as 15-20 objects.

On the other hand, if it's a highly mechanical operation - e.g. I need to
replicate the same On Return active link that perhaps calls a common guide
across all the fields of several forms, so I'm only changing the field id
and doing a Save As - it might get up to a few hundred (say one/minute).
 But even on my worst day and the most complex workflow it's not going to
be just one object on the low end, and it's never going to be a thousand on
the high end.

So for me, min to max, my answer would be 15 to, say, 400.  And, on
average, I'd say it's probably around 30 or so.

So, anyone willing to answer, I'd appreciate the data points.

Thanks,
Charlie


On Tue, Jun 3, 2014 at 4:44 PM, Shellman, David dave.shell...@te.com
wrote:

 Charlie,

 Being an AR System admin is not about how many active links or filters or
 fields one can put together in a day.  Do they work as intended?  Are the
 permissions right?  If they are not working as intended how well does the
 individual do to figure out what is not right and correct the problem.  Is
 it entirely new workflow or is the individual adding to something another
 person put together?  Or they finding and correcting issues and with
 existing workflow.

 If you count workflow objects one could do coding to meet that criteria.
 On the other had they could be efficient and combine three actions into one
 filter instead of three.

 Finally there is more than one way to create code within the AR System.
  One individual could do something one way and another individual
 completely different.  Both ways meet the design requirements.

 Dave

  On Jun 3, 2014, at 5:46 PM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:
 
  **
  Hi all,
 
  I'm curious...what are your opinions about what might be useful metrics
 to use to judge the performance of Remedy developers?  To narrow the
 conversation a bit, let's just talk about during the creation of a new
 custom application, or custom module to an existing application.  In other
 words for code generation.
 
  So for example, you might tell me that a good developer can create at
 least 50 logic objects (active links/filters/escalations) in a day.  Or
 create  format one form/day.
 
  What are you opinions?
 
  Thanks,
  Charlie
  _ARSlist: Where the Answers Are and have been for 20 years_


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Active-link Associated with from

2014-05-26 Thread Charlie Lotridge
Hi Rajesh,

These three queries pull the desired counts for the User form.  Change
User to your desired form to get the results you need.

SELECT COUNT(*)
FROM actlink a
JOIN actlink_mapping am
ON am.actlinkId = a.actlinkId
JOIN arschema s
ON s.schemaId = am.schemaId
WHERE s.name = 'User'

SELECT COUNT(*)
FROM filter f
JOIN filter_mapping fm
ON fm.filterId = f.filterId
JOIN arschema s
ON s.schemaId = fm.schemaId
WHERE s.name = 'User'

SELECT COUNT(*)
FROM escalation e
JOIN escal_mapping em
ON em.escalationId = e.escalationId
JOIN arschema s
ON s.schemaId = em.schemaId
WHERE s.name = 'User'

-charlie


On Mon, May 26, 2014 at 12:50 PM, Rajesh Singh
rajesh.singh0...@gmail.comwrote:

 Hi ,


 Could anyone of you please help me to , to know the SQL query to find the
 no of active-link, filter and escalation associated with the form from
 Database side.



 Thanks
 Rajesh


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Transactional (TR) and Database (DB)

2014-05-19 Thread Charlie Lotridge
Hi Randeep  Misi,

I've performed a few tests and confirmed your propositions that the 'DB.'
construct causes a DB read. In a SQL log I can see a DB read before the
UPDATE only when I have a 'DB.' filter active (but not when I just have one
using 'TR.').

This is interesting and something I wasn't aware of and hadn't considered.
It certainly has only a very narrow potential usage, but I agree there may
be times when it'll come in handy as a performance boost.

Another interesting aspect of this is that ARS seems to read the entire
record, even though only one field is being used in one 'DB.'
qualification. So, I guess if you absolutely must use 'DB.' construct
anywhere in the filter sequence for a form, you may as well use it
everywhere.

I also tried turning off all of the triggers of the filter that had the
'DB.' qualification (i.e. there was no way it could be executed), and ARS
still performed the DB read. But, of course, the server can't *know* that
the filter can't run...it might be called in a guide somewhere. So this
makes sense.

So, it seems that if you have *any* active filter associated with a form
that uses a 'DB.' construct in it's qualification, ARS is going to perform
a full read of the record before filter processing.

-charlie



On Mon, May 19, 2014 at 6:04 AM, Misi Mladoniczky m...@rrr.se wrote:

 Hi,

 The only reason I can see for this is something I said in one of the other
 zillion messages to this thread.

 When you have anything but 'TR.Field' in the run-if clauses of filters, the
 system will do a fetch of that fields DB-value before the filters are
 processed.

 So it could be a performance benefit to use ('TR.Field' != $NULL$).

 In most cases the gain will be very small, but I guess it could matter
 sometimes.

 Best Regards - Misi, RRR AB, http://www.rrr.se (ARSList MVP 2011)

 Ask the Remedy Licensing Experts (Best R.O.I. Award at WWRUG10/11/12/13):
 * RRR|License - Not enough Remedy licenses? Save money by optimizing.
 * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy logs.
 Find these products, and many free tools and utilities, at http://rrr.se.

  I'm curious, what's the 0.1% case when it would be useful? I'm just not
  seeing any unique use for it at all.
 
  -charlie
 
 
  On Sat, May 17, 2014 at 1:04 PM, Misi Mladoniczky m...@rrr.se wrote:
 
  Hi,
 
  It is up to the client.
 
  If this for example was done through a Push-Fields, 'TR.City' could
  contain a
  value even if it was not changed. The same could be done using a
  Modify-All,
  and I think it is possible to fool some clients by first changing the
 field
  value in the GUI and then change it back before pressing Save.
 
  As others have suggested, we should stay away from TR in 99.9% of the
  cases.
 
  Best Regards - Misi, RRR AB, http://rrr.se
 
   Misi,
   Joe's example stated
  
   Case 1: When there is no change in the 'City' value during the
  modification.
   'City' = Gotham
   'TR.City' = $NULL$ (as there was no transnational change in the value)
   'DB.City' = Gotham
  
   So, this isn't a modify to City...this is an existing record with City
   already populated...so I still say that Joe's analysis is correct :)
  
  
   On Sun, May 11, 2014 at 4:35 AM, Misi Mladoniczky m...@rrr.se wrote:
  
   Hi Joe and LJ,
  
   You are wrong on Case 1:
  
   If you set the City to Gotham, it will have a TR-value of Gotham
  even
   on a
   Create.
  
   Case 2 is nothing much to say about.
  
   The problem with the TR value is:
  
   A. If the value is NOT changed it can both be set or be empty during
 a
   Modify.
   This depends on the client and how they use the API. For example a
   Push-Fields
   will always send a value, but a normal Save will only send a value
 if it
   has
   been changed.
  
   B. A value that is changed to NULL can not be distinguished from a
 value
   that
   is not sent in the transaction. Both situations will match a
 'TR.Field'
  =
   $NULL$.
  
   Best Regards - Misi, RRR AB, http://www.rrr.se (ARSList MVP
  2011)
  
   Ask the Remedy Licensing Experts (Best R.O.I. Award at
  WWRUG10/11/12/13):
   * RRR|License - Not enough Remedy licenses? Save money by optimizing.
   * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy
  logs.
   Find these products, and many free tools and utilities, at
  http://rrr.se.
  
While most of everything you stated is in sync with my
 understanding
  of
   TR,
there is one small difference. MAYBE, I'm wrong and if so, I would
  love
   to
be corrected.
   
I can best explain this with an example.
   
Lets say a record is created and there is a field called 'City' and
   during
creation, that field was set to Gotham..
   
Case 1: When there is no change in the 'City' value during the
   modification.
'City' = Gotham
'TR.City' = $NULL$ (as there was no transactional change in the
 value)
'DB.City' = Gotham
   
Case 2: When the value in the field 

Re: Transactional (TR) and Database (DB)

2014-05-18 Thread Charlie Lotridge
I'm curious, what's the 0.1% case when it would be useful? I'm just not
seeing any unique use for it at all.

-charlie


On Sat, May 17, 2014 at 1:04 PM, Misi Mladoniczky m...@rrr.se wrote:

 Hi,

 It is up to the client.

 If this for example was done through a Push-Fields, 'TR.City' could
 contain a
 value even if it was not changed. The same could be done using a
 Modify-All,
 and I think it is possible to fool some clients by first changing the field
 value in the GUI and then change it back before pressing Save.

 As others have suggested, we should stay away from TR in 99.9% of the
 cases.

 Best Regards - Misi, RRR AB, http://rrr.se

  Misi,
  Joe's example stated
 
  Case 1: When there is no change in the 'City' value during the
 modification.
  'City' = Gotham
  'TR.City' = $NULL$ (as there was no transnational change in the value)
  'DB.City' = Gotham
 
  So, this isn't a modify to City...this is an existing record with City
  already populated...so I still say that Joe's analysis is correct :)
 
 
  On Sun, May 11, 2014 at 4:35 AM, Misi Mladoniczky m...@rrr.se wrote:
 
  Hi Joe and LJ,
 
  You are wrong on Case 1:
 
  If you set the City to Gotham, it will have a TR-value of Gotham
 even
  on a
  Create.
 
  Case 2 is nothing much to say about.
 
  The problem with the TR value is:
 
  A. If the value is NOT changed it can both be set or be empty during a
  Modify.
  This depends on the client and how they use the API. For example a
  Push-Fields
  will always send a value, but a normal Save will only send a value if it
  has
  been changed.
 
  B. A value that is changed to NULL can not be distinguished from a value
  that
  is not sent in the transaction. Both situations will match a 'TR.Field'
 =
  $NULL$.
 
  Best Regards - Misi, RRR AB, http://www.rrr.se (ARSList MVP
 2011)
 
  Ask the Remedy Licensing Experts (Best R.O.I. Award at
 WWRUG10/11/12/13):
  * RRR|License - Not enough Remedy licenses? Save money by optimizing.
  * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy
 logs.
  Find these products, and many free tools and utilities, at
 http://rrr.se.
 
   While most of everything you stated is in sync with my understanding
 of
  TR,
   there is one small difference. MAYBE, I'm wrong and if so, I would
 love
  to
   be corrected.
  
   I can best explain this with an example.
  
   Lets say a record is created and there is a field called 'City' and
  during
   creation, that field was set to Gotham..
  
   Case 1: When there is no change in the 'City' value during the
  modification.
   'City' = Gotham
   'TR.City' = $NULL$ (as there was no transactional change in the value)
   'DB.City' = Gotham
  
   Case 2: When the value in the field 'City' is changed during a
  modification
   to Xanadu
   'City' = Xanadu
   'TR.City' = Xanadu
   'DB.City' = Gotham
  
   So according to my understanding, it is incorrect to say that
 'TR.City'
  is
   the same as 'City' at all times.
  
   Cheers
  
   Joe
  
  
   -Original Message-
   From: Action Request System discussion list(ARSList)
   [mailto:arslist@ARSLIST.ORG] On Behalf Of William Rentfrow
   Sent: Friday, May 09, 2014 9:28 AM
   To: arslist@ARSLIST.ORG
   Subject: Re: Transactional (TR) and Database (DB)
  
   I think there's a few reasons.
  
   First, using TR. is redundant.  Every value in a filter (unless it
  already
   has DB. in front of it) is by it's nature a transactional value.
  There's
   literally almost no reason to use, it, EXCEPT that it makes the code a
  bit
   more clear from a visual standpoint if you do decide to use DB. on a
  field.
  
   I think the reason most people don't use DB. on field workflow is that
  it's
   kind of perceived as lazy.  Let's say you want to check and see if a
  phone #
   has changed.  You can either use the Phone != DB.Phone at runtime - or
  you
   can do an actual lookup with some separate workflow prior to this
 action.
   That gives you greater control over the action going on for the most
  part.
  
   That said, it's just my opinion and I'm sure there's lots of place
 people
   have used both and been perfectly happy with it.
  
   -Original Message-
   From: Action Request System discussion list(ARSList)
   [mailto:arslist@ARSLIST.ORG] On Behalf Of James Smith
   Sent: Thursday, May 08, 2014 10:22 AM
   To: arslist@ARSLIST.ORG
   Subject: Transactional (TR) and Database (DB)
  
   Hi List,
  
   We can achieve things without using TR and DB values in a filter by
 just
   using Field but I do not understand why they have been developed to
 use?
  I
   have heard from many remedy developers like Misi and BMC who suggest
 not
  to
   use TR and DB in Run If qualification of a filter but why?
  
   Why it is not recommended to use TR and DB values?
  
   What if I use TR.Field=DB.Field? Will it yield a correct result? In
 BMC
   documentation also they have not given any example where they used TR
  and DB
   together in a 

Re: Transactional (TR) and Database (DB)

2014-05-17 Thread Charlie Lotridge
Hi all,

I have to admit that I've never once used the TR. construct, and I've been
working with this system a long time. I guess I've always assumed it had a
reasonable usage but, since I was always able to accomplish everything I
needed to do with the 'Field' and 'DB.Field' constructs, I never looked
that closely at TR or given it as much thought as I have reading this
conversation.

I think the ONLY important question here is: is there anything at all that
you can do with TR that can't be done without it? Is there any question
that it and it alone can uniquely answer? And I think the answer is no, in
which case the mechanism is at best redundant and superfluous. Worse
though, it's pretty clear from this conversation that it's easily
misunderstood and misused.

To clarify a point, many people have mentioned, as Misi did, that a 'Save'
by the user will set the TR values for only those values that have been
changed (and, of course, not to NULL). More generally, every client (like
the WUT or the mid-tier) using the ARSetEntry API (or ARCreateEntry or
ARMergeEntry, which the mid-tier and WUT do) must assemble the set of
field/value pairs that it wants to update into a record.  This does not
necessarily include all of the fields on the form.  Similarly, when you
create a PushFields action, you choose and assemble the list of field/value
pairs you want to send to the foreign form, and it does not necessarily
include all of the fields on the form.

It is the fields in this list that will have TR values (if, again, they're
not NULL). Even if a particular field/value pair in the list contains a
value that is NOT new, the TR value will be set, but in this case
'TR.Field' = 'DB.Field'.

The WUT and mid-tier are smart about it in that they only include in the
field/value pair list those fields with values that they think have
changed, which is why it appears that TR only gets set if the field has
changed. Other clients using the API might not be as selective and send
values that are not changed.  A PushFields is similar in that it might send
unchanged values.  So the fact that TR contains a value does NOT mean the
value is being changed. And of course as many have mentioned, the fact that
TR is NULL does not mean that the value is not being changed.

I got curious about all this and did some testing. One thing I found (that
I haven't seen mentioned yet) is that a SetFields in workflow WILL set the
TR value of a field, so the TR value being set does not even mean that the
new value is external (i.e. came from a client or Push Fields). I was
really hoping to find otherwise, so that ('TR.Field' != 'Field' AND 'Field'
!= 'DB.Field') would uniquely mean that 'Field' was set by local workflow
(a SetFields). Of course, this isn't something I've ever actually needed to
test for, but at least it'd be interesting.

I also got curious about how TR and DB affect values being sent into
Display fields, but nothing really surprising turned up (the 'DB.Field'
value is always NULL as you might expect ).

So in conclusion:

1) 'TR.Field' having a value does not necessarily mean that the field has
changed since it could be that 'TR.Field' = 'DB.Field'

2) 'TR.Field' having a value does not necessarily mean that the field has
been sent a value from an external source, since a SetFields in local
workflow will set the TR value.

3) TR.Field' having a value of NULL does not necessarily mean that the
field is not being changed - it might be being changed to NULL (which we
can detect with 'Field' != 'DB.Field' AND 'Field' = $NULL$)

4) 'TR.Field' != 'Field': For a moment I was hopeful that this *might*
uniquely tell us that a field is NOT being updated by the external source
(not sure why it'd ever be important to know this), but if 'DB.Field' is
already NULL, then we won't know if the field IS in fact being updated, but
to NULL.  Presumably if you DO find a use case where it's important to know
if the field is in the field/value list, you'd probably want to know it
even if it's being set to NULL.

5) 'TR.Field' != 'DB.Field': Does tell us if the field is being assigned a
new value, but as we all know this can always be reliably done with just
'Field' != 'DB.Field'.

So, I just don't see any need for the TR construct.  It doesn't reliably
tell us anything we can't determine with the other two constructs.

I've attached a .def with the form  workflow of my tests for anyone who
might want to play around with it.  In it I define a regular form with a
regular field 'Regular' and a display field 'Display'. I then have filter
workflow that checks each for each of the following conditions:

* 'TR.Field' != 'DB.Field'
* 'TR.Field' != 'Field'
* 'Field' != 'DB.Field'

I then have workflow that performs a SetFields into each field, then test
these conditions again (this to show that a SetFields does change the TR
value).  Everything works pretty much as expected.

-charlie



On Sat, May 10, 2014 at 2:57 AM, Misi Mladoniczky m...@rrr.se wrote:

 Hi,


Re: Indirect reference to form field value

2014-05-12 Thread Charlie Lotridge
Hi Robin,

[Given how the ARSLIST is performing these days, I'm sending this to you
directly as well as back to the list so that it'll hopefully get to you
more quickly.]

The very first thing I want to mention is that I got it wrong when I said
that a return value of 0 indicates failure  As Fred mentioned in an earlier
email in this thread 0 indicates success and 1 indicates failure. Sorry for
this, I guess there's no substitute for reading the actual docs.

So, it would appear that your operation was actually successful.  Still,
regardless of the return value, you're apparently not seeing your source
value appear in the target field.  My suspicion now is that other workflow
is perhaps wiping out the target field value after your
Application-Copy-Field-Value operation. You'll need to run logs to see if
this is what's happening.

But, as promised, I've put together and attached a .def file containing a
regular form (called TestAppCopyField) along with a single active link and
a single filter. The form has a bunch of character fields that you can use
as the source and target, three integer fields (a 'Source Field ID',
'Target Field ID', and 'Result'), and finally a button to trigger the
active link.  Both the filter and active link each have only one Set Fields
action that simply puts the result of this

*$PROCESS$ Application-Copy-Field-Value $Target Field ID$ $Source Field ID$*

into the 'Result' field.

I've tested this on both 8.1.1SP1 and an old 7.1 system I have lying
around, so it should work on anything between.

To test on the active link side, do this:

1) Import the .def file
2) Open the TestAppCopyField form in a browser or in the WUT
3) Enter some text into the character field named '8' (which is
also its field id)
4) Put that field id (8) into 'Source Field ID'
5) Put 80001 into 'Target Field ID'
6) Click the Transfer Data button

The character field '80001' should now have your value, and 'Result'
should contain 0.  Try different values as the source and target fields
(all of the field labels contain their field ids to make it easy).

To test the filter (which triggers on Submit or Modify), do this:

1) Open a New Request window on the form
2) Set the '8' field to some text value
3) Put 8 into 'Source Field ID'
4) Put 80002 into 'Target Field ID'
5) Save the entry
6) Use a search window to locate the entry, the '80002' field should
have your original text value and 'Result' should be 0
7) Change the 'Source Field ID', 'Target Field ID', and other field values
and Save to test it

Incidentally, I did confirm that the mechanism will do data conversions
(try using one of the integer fields as the source or target, and one of
the character fields as the other).

Let me know how it works.

-charlie


On Tue, May 6, 2014 at 3:29 AM, Robin Mathew robi...@rediffmail.com wrote:

 Hi Charlie,

 The operation is returning 0 value,ie failure.

 And, reference values are getting set correctly in the SourceFiledId and
 TargetFieldID.

 Based on my requirement I want this to be done in filter.

 Could you please share your code with me if you have already done this?

 Thanks in anticipation.

 Regards
 Robin




 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years
char-set: UTF-8
#
#  File exported Wed May 07 08:11:11 2014
#
begin schema
   name   : TestAppCopyField
   core-version   : 2
   upgrade-version: 0
   num-fields : 17
   timestamp  : 1399475389
   owner  : Admin
   last-changed   : Admin
   default-vui: Default Administrator View
   num-vuis   : 1
   export-version : 12
   schema-type: 1
   next-field-id  : 536870912
   permission : 0\2
vui  {
   id : 536870912
   name   : Default Administrator View
   label  : Default Administrator View
   timestamp  : 1399475389
   vui-locale : 
   vui-type   : 1
   owner  : Admin
   last-changed   : Admin
   display-prop   : 1\20\4\26\Default Administrator View\
}
field {
   id : 1
   name   : Request ID
   datatype   : 4
   fieldtype  : 1
   create-mode: 2
   option : 3
   timestamp  : 1399475389
   owner  : Admin
   last-changed   : Admin
   length-units   : 0
   maxlength  : 15
   clob-store-opt : 0
   menu-style : 2
   qbe-match-op   : 1
   fulltext-optns : 0
   permission : 4\1
   permission : 0\1
   permission : 3\1
 display-instance : 
536870912\14\3\41\2\77052\1500\99886\3600\4\6\1\7\40\2147483640\20\4\10\Request 
ID\21\41\2\0\400\7086\2100\27\8\16\28\6\4\29\6\1\60\40\1\65\41\2\0\0\0\0\143\
 display-instance : 

Re: Dynamic user-specific color coding for table field rows and columns

2014-05-07 Thread Charlie Lotridge
Hi Robin,

Unfortunately, no, you can't directly do what you want here. The table 
column coloring configurations are embedded in some very low level display
properties associated with the table  column fields in the data
dictionary. There is no way to either dynamically change these, or have
user specific configurations.

I actually *can* think of a solution, but it'd be pretty involved and would
require:

1) An additional form to capture the users' color configurations for each
Priority value to a limited pre-existing set of colors (one entry for each
user and Priority value)
2) Creating a SQL view joining that configuration with the source table,
and pulling in that user configuration data
3) Creating a Remedy View on top of the SQL View, and adding a Selection
field on top of the user color configuration value
4) Setting up the table (or column) to use this field as the 'Resuts Color'
source with the pre-existing colors.
5) You'd have to also add a UI allowing the users to add/edit this
configuration.

I'm not sure this is very clear...this is off the top of my head, but I'm
pretty sure it could be made to work.  Like I said though, it's pretty
involved and would take a bit of time to put together.

Charlie


On Tue, May 6, 2014 at 11:56 PM, Robin Mathew robi...@rediffmail.comwrote:

 Hi all,

 I request your help for the following requirement.

 Requirement

 I need to provide a configuration screen to user where he can define color
 coding for table field rows and columns.

 Example,suppose a table field has  'Priority' column.In the configuration
 screen,provision should be given to the user for selecting any color for
 Priority column.

 if 'User A' selects green color for Priority column,when he view this
 table field,Priority column should be displayed in green color.
 if 'User B' selects Red color for Priority column,when he view this table
 field,Priority column should be displayed in Red color.

 Similarly, provision should be given to user for defining color coding for
 table field rows.

 Example,User A wants to define Blue color for table field row if a record
 has Priority = Medium.

 User B wants to define Yellow color for table field row if a record record
 has Priority = Medium.

 Is it possible to set  user-specific color coding for table field rows and
 columns in remedy table field?

 if not possible in Remedy,kindly suggest any other options.

 Thanks
 Robin


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Self-Terminating/disabling Escalation

2014-05-04 Thread Charlie Lotridge
LJ,

Although it's not a feature that I've found particularly useful, your use
case sounds like a perfect candidate for an error handler filter. If you
use one on the target form (of the push) to catch the individual errors, it
should allow the whole transaction to succeed.

However, there's another reason the use a table loop to push to target
entries may not be a good idea...it's not scalable. All of the filters
executed in that single run of the escalation's actions count toward the
filter limit set for the system. So if the number of target entries might
be or grow large, a run of this thing might hit the system limit and abort
(and rollback) the entire transaction.

If you use the normal paradigm and have the escalation running on the
target form directly (instead of from a control form), each run of the
escalation's actions resets the filter counter, lessening the probability
of hitting the limit.

-charlie
On May 3, 2014 5:48 AM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Doug/All,
 I'll let you know about a 'problem' I have come across with this approach.
  Unfortunately, or fortunately, depending on how you look at it, a Push
 action requires that all actions on the push succeed for any to be
 committed to the DB...so as long as the push encounters 0 issues,
 everything is fine.  If however, you are using an escalation to process
 some records, lets say 100 of them...and 3 of them will generate an error.
  If using a Push action from a control form, as described, the escalation
 will fire, kicking off the Filter, the Filter will perform the push, it'll
 hit the first record that errors out, and the entire action is rolled back,
 thus leaving 100 records needing to be modified by the escalation.  If
 however, the Escalation was making the changes to that record directly, 97
 of the records would be successfully processed, 3 of the records would drop
 an error in the arerror.log file, and you would be left with only the 3
 error records.

 Sothe two are not unfortunately 100% the same...but similar to each
 other, with limitations that may or may not make the use of the control
 form viable or not.


 On Thu, May 1, 2014 at 1:13 PM, Tanner, Doug 
 doug.tan...@compass-usa.comwrote:

 **

 We use a table/form (i.e. CMN:System Variables) that has one entry with
 multiple attributes, we have a large number of escalations doing many
 different things that look at the CMN:System Variables, and then runs
 appropriate actions on appropriate tables. Works slick! Doug



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Ben Cantatore
 *Sent:* Thursday, May 01, 2014 12:18 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: Self-Terminating/disabling Escalation



 ** Sapna,

 Have a flag field as part of the escalation set the flag to true.  Make
 the run if qualification for the escalation run on flag equal false.  That
 should ensure it only runs once.  Otherwise, I'd just create an escalation,
 run it and then remove it manually.



 *Ben Cantatore*
 *Remedy Architect*
 Bed Bath  Beyond
 650 Liberty Avenue
 Union NJ 07083-8130
 Office: (908) 613-5769
 Cell: (914) 263-6802

 [image: LinkedIn] http://www.linkedin.com/pub/ben-cantatore/3/220/9a7/



 From:Sapna Motwani sapana.motw...@gmail.com
 To:arslist@ARSLIST.ORG,
 Date:04/30/2014 11:58 PM
 Subject:Self-Terminating/disabling Escalation
 Sent by:Action Request System discussion list(ARSList) 
 arslist@ARSLIST.ORG
  --




 Hello Experts,

 Please suggest is it possible to define a self-terminating escalation. I
 need to run an escalation just once, and then it should disable itself.
 I want to know is it possible to define an escalation which triggers some
 workflow to mark the calling parent escalation as disable.

 Any help would be highly appreciated.

 Regards,
 Sapna


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years

  -- CONFIDENTIALITY
 NOTICE: This e-mail, and any attachments thereto, is intended only for use
 by the addressee(s) named herein and may contain confidential information.
 If you are not the intended recipient of this e-mail, you are hereby
 notified that any dissemination, distribution or copying of this e-mail,
 and any attachments thereto, is strictly prohibited. If you have received
 this e-mail in error, please permanently delete the original and any copy
 of any e-mail and any printout thereof. Thank you for your compliance.

   ­­   _ARSlist: Where the Answers Are and have been for 20 years_
  This email is subject to certain disclaimers, which may be reviewed via
 the following link. http://compass-usa.com/Pages/Disclaimer.aspx.
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the 

Re: Self-Terminating/disabling Escalation

2014-05-02 Thread Charlie Lotridge
Hi Sapna,

The bad news is that there is no workflow action that will accomplish this
for you. You could potentially try to use a SQL update (in a Direct SQL
action) to directly update the Remedy data dictionary, which would look
something like this:

UPDATE escalation
SET enable = 0
WHERE name = 'The Escalation Name'

But I'd recommend against this for two reasons.  First, any running AR
servers would not notice the change until they reload their data dictionary
caches.

Second, doing this *might* cause the escalation to become invalid in that
it would no longer match the checksum (in the safeGuard column of the
escalation table).  I haven't checked this and don't know offhand if the
enable is part of that checksum.

The only way I can think of would be to write a small API program that
performs the action. This would immediately affect the AR server on which
it's run, but it would not propagate to any other servers until they reload
their caches (I don't know much about server groups...would other servers
in the group notice such changes and automatically reload?).

I hope this helps.

-charlie


On Wed, Apr 30, 2014 at 12:06 PM, Sapna Motwani sapana.motw...@gmail.comwrote:

 Hello Experts,

 Please suggest is it possible to define a self-terminating escalation. I
 need to run an escalation just once, and then it should disable itself.
 I want to know is it possible to define an escalation which triggers some
 workflow to mark the calling parent escalation as disable.

 Any help would be highly appreciated.

 Regards,
 Sapna


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Indirect reference to form field value

2014-04-30 Thread Charlie Lotridge
Hi Robin,

Sorry to hear that.

Are you capturing the value being returned by the operation? If so, is it
indicating the failure (i.e. returning 0). Also, are you capturing a
workflow log to make sure the reference values (e.g. the 'SourceFieldID'
and 'TargetFieldID' in my example) are being set correctly?

If you still can't get it working, would it help if I cobble together a
small working demo and send it in a .def file? You could then morph it
into the workflow you need. Question, are you doing this at the active link
level or the filter level?

-charlie


On Tue, Apr 29, 2014 at 10:11 PM, Robin Mathew robi...@rediffmail.comwrote:

 Thanks Misi and Charlie.

 I will test and let you know.

 Regards
 Robin


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Filed attributes

2014-04-25 Thread Charlie Lotridge
Hi Vidyasagar,

Unfortunately, no...Remedy is going to display the set of Selections (as
they call them) in increasing order of the ID (the underlying number).
 To be clear, the Custom mapping mechanism you asked about in your first
email would not change this.

If this is important, I can think of a work-around (using a display-only
field and some workflow).  But before I seriously suggest making the
situation that much more complex, I'd first suggest that you re-examine
your reasons for making the change in the first place.  You didn't discuss
these reasons, but my first guess is that someone wants to consume the data
in a report, and wants those values mapped in the new way.  If so, a
simpler solution might have been to make the change when querying the data
for the report in a way similar to the UPDATE statement I mentioned last
time.  So, when pulling the data for the report, that user could do
something like:

SELECT
  other stuff
 CASE WHEN Text = 0 THEN 1 ELSE 0 END AS Text
FROM SomeForm

If the user can't execute a SQL query (and their reporting tool doesn't
provide a similar mechanism - which would be surprising), then you could
create a SQL view that has this remapping and have the user use that SQL
view. Though, again, this would be adding a lot of complexity to solve a
seemingly simple requirement (it's at this point I'd really start to drill
into those reasons for the requirement to see just how important it is).

If you want to use a purely Remedy based way to get the underlying values
you want along with the Yes then No ordering of the radio button, do
this...

1. Copy and paste the 'Text' field to create a new field and change it's
database name to 'DO Text' (or something), but leave the label alone.
2. Set the Entry Mode of the 'DO Text' field to Display.
3. Change the Selections mapping (of the new 'DO Text' field) so that it's
matches the original Yes - 0, No - 1
4. Put the existing 'Text' field onto some hidden page, or make it
invisible, and move the new 'DO Text' field into the original's position so
that it looks like nothing has changed.
5. Create an Active Link triggered on Window Loaded that sets 'DO Text' to
Yes when 'Text' is set to Yes, and No when 'Text' is set to No
6. Create an Active Link triggered on Return with the Field set to 'DO
Text' that sets 'Text' to Yes when 'DO Text' is set to Yes, and to No
when 'DO Text' is set to No.

Again, this is a lot of additional complexity to meet a seemingly simple
requirement.  I wonder if it's worth it.

Let me know if any of this is not clear or you have any questions.

Thanks,
Charlie


On Fri, Apr 25, 2014 at 12:33 AM, vidyasagar kommu 
kommuvidyasa...@gmail.com wrote:

 **
 Hi Charlie ,

 One more question .
 Once we  change the attribute value of as  Yes =“1” and No =“0” form the
 front end radio button field is displaying like (field  No  Yes).
 I belive it was taking assending order while displaying the fields.
 Is there any workaround on this?


 On Fri, Apr 25, 2014 at 12:53 PM, vidyasagar kommu 
 kommuvidyasa...@gmail.com wrote:

 Thanks a lot  charlie
 ...

 On Mon, Apr 21, 2014 at 12:08 AM, Charlie Lotridge 
 lotri...@mcs-sf.comwrote:

 **
 No, there's no need to use the custom enumeration type, you just need
 to go in and switch the Yes name (and labels on all views) to No, and
 the No name and labels to Yes.

 HOWEVER you must change the existing data to match the new mapping.  I'd
 recommend using SQL to execute a command like the following (let's assume
 the form name is SomeForm):

 UPDATE SomeForm
 SET Text = CASE WHEN Text = 0 THEN 1 ELSE 0 END

 Note that I'm assuming that your enumeration doesn't have any other
 values besides Yes (currently mapped to 0) and No (currently mapped to 1).

 Hope this helps.

 -charlie


 On Fri, Apr 18, 2014 at 6:59 AM, vidyasagar kommu 
 kommuvidyasa...@gmail.com wrote:

 **
  Hi All,

 existing behaviour In a regualr form  i have radio button field name
 ‘Text’ = ‘YES’and Data base value as  “0” and ‘Text'= ‘NO’ and the
  Data base  value as  “1”.
 There is no default value



 New requirement  is 'Text'= ‘YES’ and  database  value should be “1”
 and  'Text’= ‘NO’ then database  value should be  “0”.
 ‘Text' field Default value should be “No”

 Could you please let me know how do I change the database Id of the
 existing field i.e 'Text'
 Is there any Impact on existing Orders ?

 Should we convert the field Linear to Custom If you go to field
 properties under Attributies---we have option call Custom should we change
 the data base ID ?


 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_




 --
 Sagar




 --
 Sagar _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Indirect reference to form field value

2014-04-24 Thread Charlie Lotridge
Hi Robin,

I actually use this mechanism quite a lot, and it certainly does work when
it gets the field id from other fields.  One thing to note is that you MUST
use this in a Set Fields - I actually don't think it'll even work in a Run
Process (though I haven't confirmed this just now, but I'm pretty sure I've
tried it in the past).  So, that Set Fields action might look like:

Field: SomeInteger0
Value: $PROCESS$ Application-Copy-Field-Value $TargetFieldID$
$SourceFieldId$

where:

*SomeInteger0 *- is some integer field that receives the result of the
operation.
*TargetFieldID* - is an integer field containing the field id that should
receive the value
*SourceFieldID* - is an integer field containing the field id that contains
the source value

As Fred mentioned, you can check the return value of this operation - the
value that will be put into 'SomeInteger0' in my example - to determine if
the operation was successful or not.  It'll be set to 1 if it worked, 0 if
not.  I don't bother checking this anymore because, once you get it
working, it's a very robust mechanism and never fails.

This may be obvious, but just to be clear, the data types of the fields
referenced by 'SourceFieldID' and 'TargetFieldID' do not themselves have to
be integers.  I haven't exhaustively tested this with all the different
field data types, but it certainly works with Character, Integer, Date,
Time, and DateTime field types.  I also have NOT tried to use this to move
a value from one data type to another...I'm not sure it'll do the
conversion that a normal Set Fields would do.

Let me know if this works for you or if any of this is not clear.

Thanks,
Charlie



On Thu, Apr 24, 2014 at 2:26 AM, Robin Mathew robi...@rediffmail.comwrote:

 Hi Fred,

 Application-Copy-Field-Value command works when ID of the field is given
 as shown below.

 Application-Copy-Field-Value 1300567  1300568


 In my case,I cannot use hard-code value as I am implementing dynamic field
 value functionality.

 I have two fields ,Field_ID and Field_Value(ID : 1300567)

 Field_ID contains 1300568(ID of Priority field)

 I want to set Priority field value in Field_Value field.

 I tried, Application-Copy-Field-Value 1300567  $Field_ID$,but did not work.

 Please let me know how I can set value of a field to another field using a
 variable(variable contains ID of the source field)

 Regards
 Robin


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: OpenWindow vs. PERFORM-ACTION-OPEN-URL

2014-04-23 Thread Charlie Lotridge
Doug,

Thanks for this information.  Your description of the Definition Change
Check Interval is consistent with my understanding (and, well, its very
name).  And changes to it would certainly explain why opening a window
(using either mechanism) after a structural change might or might not take
a bit longer.  What is most interesting is your description that with
OpenWindow you can do things that you can't otherwise...so the mid-tier
is somehow optimized for OpenWindow.  That makes sense.

I happen to have a very generic piece of workflow that does pretty much all
window openings for me.  My solution to this whole thing was to install a
global checkbox field used by this workflow to act as a switch: if it's
selected windows get opened using URL's, otherwise OpenWindow.  During my
development (where I'm of course making lots of changes and have that Check
Interval set to 0), I of course have this unchecked because I don't want to
wait (in some cases up to 1/2 minute) to open an entry, but it'll probably
be selected to use URLs in production.

Thanks,
Charlie


On Wed, Apr 23, 2014 at 9:17 AM, Mueller, Doug doug_muel...@bmc.com wrote:

 **

 Charlie,



 The Definition Change Check Interval is the key to the issue.



 What this setting does is identify how frequently the mid-tier checks the
 AR System server for whether a

 definition has changed.  When set to 0, it means that every access to the
 system causes a check to the server

 to see if there has been change.  When set to  0, it means there are
 checks at the interval set (number of

 seconds if I remember right) for changes to definitions.



 On dev systems, setting to 0 (or a small number) makes sense.  You trade
 off a bit of interactive speed for the

 currency of definitions because you are changing definitions and you are
 trying out the changes soon after

 making them.



 On Production systems however, setting to a higher value – every hour or
 even longer – is much more

 reasonable as definitions are NOT changing (or only at very specific
 times) and you want the highest

 interactive performance.



 NOTE: I know that there may be some comments in even BMC docs that 86400
 is a good setting, but that is 24

 hours and that seems like a REALLY long time to me.  The check should be
 fast and cheap if there are no changes and if there are changes, I really
 don't want to wait for up to 24 hours to pick them up.  I personally

 would go with a setting more like 3600 (one hour) so that changes are
 picked up in a reasonable time (not

 necessarily instantly but within an hour).



 We can do things when we know what the window is (OpenWindow) but not when
 we have no clue what you

 are going to open (the URL).  So, you were getting good performance on
 OpenWindow and a penalty on

 the URL.  When you changed the check every time setting to something
 that is periodic, you can see that the

 performance of the two is comparable.



 By the way, the check is actually in the background and doesn't really
 affect interactive use – unless the

 background has loaded a new definition and then there may be a bit of a
 longer load time for screens the first

 time after the change has downloaded.  Except that is when time is set to
 0 so there is some interactive

 interaction.



 So, the issue you were seeing was because of a caching configuration
 setting.  The behavior of the windows

 and the interaction of the two different modes should be consistent with
 each other.



 One other note….  The 8.1 sp1 mid-tier has done a lot of work around
 eliminating the need to clear caches.

 We believe the issues with the browser cache on end user systems getting
 out of sync has been completely

 solved (we have dynamic pages with unchanging URLs and the browser caching
 model relies on URLs being

 the same so we have to force awareness of change internally to our pages
 to get around the browser caching).

 And, the mid-tier correctly updating definitions (at the update interval)
 has been tuned so that you should not

 need to perform a reload cache on the mid-tier anymore.  The 8.1 sp1 mid
 tier is compatible 7.6.04 and 8.0 and

 8.1 servers (all patch levels).



 Doug Mueller



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Thursday, April 17, 2014 12:07 PM

 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: OpenWindow vs. PERFORM-ACTION-OPEN-URL



 **

 A quick update...



 So, first, I noticed that in my earlier posts I kept saying Netscape when
 I really meant Firefox.  I'm getting old.



 Joe, I didn't mean to emphasize the time difference in browsers, but
 rather the time difference between the OpenWindow vs. URL methods.  But
 Firefox (not Netscape!) is predictably faster.



 I do, though, think the conversation about back, forward, and (I'm adding)
 refresh functions is very interesting and don't mind the segue.  I don't
 have direct experience but seem

Re: Moving Large Amount of Data to External Remedy System

2014-04-20 Thread Charlie Lotridge
Hi Kathy,

Is it Oracle to Oracle?  Why not have the DBA's transfer the data
dictionary  data tables directly?

At a previous client when we upgraded from 7.1 to 8.1 we also switched from
Oracle to MS SQL Server.  An in place upgrade wasn't an option, so we
devised and implemented a strategy that performed direct DB to DB transfers
of the data.  It was composed of a mini-app (in Remedy) containing
configuration data (mostly just which forms to transfer), and an external
API program that actually orchestrated the transfer.  With it we were able
to move about 45GB of data in about a day - not crazy quick but sufficient
for our needs at the time.

If you can't find a better solution I'd be happy to discuss the strategy in
more detail.

-charlie


On Wed, Apr 16, 2014 at 11:23 AM, Kathy Morris kathymorris...@aol.comwrote:

 **

 Hi,



 ITSM 7.6.4 Database Oracle 11

 Because our Dev Server is performing so poorly, I am building a new Dev
 server.

 I need to move a large amount of data from our Dev server to another
 external Dev Remedy server that is not on the same network.

 I do not have two Remedy migrator licenses.

 Does anyone know a good way to do this  Our tables are so poorly indexed
 on the Dev server, that trying to do manual exports hangs the system.



 By the way, does anyone know when support is going to expire for AR 7.6.4?
 and AIE?  Our company is still on 7.6.4 SP1 I think.


 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Filed attributes

2014-04-20 Thread Charlie Lotridge
No, there's no need to use the custom enumeration type, you just need to
go in and switch the Yes name (and labels on all views) to No, and the
No name and labels to Yes.

HOWEVER you must change the existing data to match the new mapping.  I'd
recommend using SQL to execute a command like the following (let's assume
the form name is SomeForm):

UPDATE SomeForm
SET Text = CASE WHEN Text = 0 THEN 1 ELSE 0 END

Note that I'm assuming that your enumeration doesn't have any other values
besides Yes (currently mapped to 0) and No (currently mapped to 1).

Hope this helps.

-charlie


On Fri, Apr 18, 2014 at 6:59 AM, vidyasagar kommu kommuvidyasa...@gmail.com
 wrote:

 **
 Hi All,

 existing behaviour In a regualr form  i have radio button field name
 ‘Text’ = ‘YES’and Data base value as  “0” and ‘Text'= ‘NO’ and the  Data
 base  value as  “1”.
 There is no default value



 New requirement  is 'Text'= ‘YES’ and  database  value should be “1”
 and  'Text’= ‘NO’ then database  value should be  “0”.
 ‘Text' field Default value should be “No”

 Could you please let me know how do I change the database Id of the
 existing field i.e 'Text'
 Is there any Impact on existing Orders ?

 Should we convert the field Linear to Custom If you go to field
 properties under Attributies---we have option call Custom should we change
 the data base ID ?


 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: OpenWindow vs. PERFORM-ACTION-OPEN-URL

2014-04-14 Thread Charlie Lotridge
Ah, got it.

The bulk of the workflow is happening in an On Display action, and both
methods invoke it (the exact same workflow).  Somewhat counter-intuitively
(given the situation), the faster OpenWindow action is also running an On
Window Loaded action (which doesn't do much) but is NOT being run by the
URL method.  So just to make sure I'm clear, OpenWindow is running a
superset of the workflow that PERFORM-ACTION-OPEN-URL is causing to be run.

While setup to run AL logging to check this (I'd like to mention here how
much I miss the easy setup for AL logging in the old WUT), I decided to use
the timing info in the log to capture some quantifiable stats.  I didn't
exhaustively try all permutations (because it would've been exhausting),
but each of the following represents the average of 8 tests of each type:

*Opening a comparatively simple form (148 mostly DO fields, 124 AL's, 38 AL
guides):*
OpenWindow method using IE 11: 1.33 seconds
URL method (to current window) using IE 11: 1.67 seconds

OpenWindow method using Netscape: 1.10 seconds
URL method (to current window) using Netscape: 1.55 seconds

*Opening a comparatively complex form (732 mostly DO fields, 946 AL's, 241
AL guides) [all using Netscape]:*
OpenWindow method: 1.53 seconds
URL method (to current window): 2.17 seconds
Using browser's history Forward: 0.05 seconds
URL method (to new window): 2.03 seconds

Clearly the form size is having an impact on all methods, which makes
sense.  Netscape is uniformly faster than IE, which is also expected.
 What's the most interesting here to me is just how fast the forward
mechanism...greased lightning.  This is of course the same as the back
mechanism, it was just more convenient for me to test it using forward.

Unfortunately I still don't know just why the OpenWindow method is faster
than URL.  I really like the functionality and usability of the URL method
over OpenWindow, and am debating if it's worth the extra cost (or, more
precisely, will the users think so).

Anyway, thanks for the suggestions guys.

-charlie



On Sun, Apr 13, 2014 at 8:20 PM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I had also thought of the authentication bit but I do not think it is that
 as the authentication is stored as a cookie, so once authenticated, until
 that cookie expires, another window that is opened should technically not
 request authentication again.



 When I said search, I didn’t mean the search that happens on the request
 ID. That is already indexed and is optimal. I meant searches that may
 happen that may be designed on open window action or window loaded action,
 that may be happening when you do a the url thingy and does not when you
 use the open window action. I agree its unlikely to be that, but that’s
 what I meant to ask you to check.



 Joe


  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *LJ LongWing
 *Sent:* Sunday, April 13, 2014 10:16 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: OpenWindow vs. PERFORM-ACTION-OPEN-URL



 **

 Charlie,

 Is it possible the extra traffic is relating to authentication?  I know
 when you do a open window action, the window is opened 'in the same
 session', but is it possible that when doing a URL call, it's having to
 communicate with the web server to determine which session is yours, which
 is taking a bit of time?



 On Sun, Apr 13, 2014 at 7:37 PM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:

 **

 Thanks for the suggestion Joe.  Unfortunately the solution is not going to
 be that simple: I was actually using a request id in the search, so it's
 not going to get more optimal than that.



 I actually did a side-by-side comparison earlier.  I set up an AL that
 would open an entry using OpenWindow, and another that opened the same
 entry using a URL, both effectively doing the same exact search (using a
 request id).  The URL method took a full second more to load (about .6 for
 OpenWindow vs. 1.6 seconds for the URL).  Using the browser's network
 monitor I can see that it's performing some additional network
 transactions, though (again) I really don't how to interpret these results
 yet.



 -charlie



 On Sun, Apr 13, 2014 at 1:57 PM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I won’t pretend to know the answer – but have you ruled out some piece of
 search workflow that might be running when you use the application command,
 which might not be running with an optimal search criteria, which might not
 be triggered during the regular Open Window action? I wouldn’t have thought
 there would  be a difference in the performance when essentially you are
 doing the same thing.



 Joe


  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Sunday, April 13, 2014 1:51 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* OpenWindow vs. PERFORM-ACTION-OPEN-URL



 **

 Hi

OpenWindow vs. PERFORM-ACTION-OPEN-URL

2014-04-13 Thread Charlie Lotridge
Hi,

Recently I was experimenting using PERFORM-ACTION-OPEN-URL instead of an
OpenWindow action to open a Modify window on a specific entry (using the
?eid=request id parameter).  It's easy enough to use and I certainly got
it working, but the performance as compared to OpenWindow was abysmal.

My guess is that this has something to do with browser caching...maybe this
method can't use the cache or something.  But I'm not sure since I don't
really know anything about how browser caching works.  I opened up the
Network Monitoring console on Netscape and do see some significant
differences in the request/response transactions, but I don't quite know
how to interpret it.

Does anyone have any thoughts or experience as to why I'm seeing this
performance difference or how to mitigate it if at all possible?  I've
tried it on each of IE, Chrome,  Netscape with similar results.

FYI here are my reasons for potentially wanting to use
PERFORM-ACTION-OPEN-URL: when (in the natural course of navigating through
my application) the user wishes to modify some entry, I have some
generalized workflow that causes the app to open a Modify window.  If the
window is opened using OpenWindow, though, and the user subsequently
attempts to refresh the browser page, it's converted to a Query (Search)
window and the context is lost.

Similarly, I was hoping to preserve browser history functionality for the
user.  If a user navigates from one entry to another (on the same for or a
different one), then the browser's Back and Forward functions should work
correctly and revisit the appropriate previously visited entries in modify
mode, but with OpenWindow they don't.

Using PERFORM-ACTION-OPEN-URL accomplishes both of these goals NICELY and
I'd switch my generalized workflow to use it except for the performance
issue.

Any thoughts?

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: OpenWindow vs. PERFORM-ACTION-OPEN-URL

2014-04-13 Thread Charlie Lotridge
Thanks for the suggestion Joe.  Unfortunately the solution is not going to
be that simple: I was actually using a request id in the search, so it's
not going to get more optimal than that.

I actually did a side-by-side comparison earlier.  I set up an AL that
would open an entry using OpenWindow, and another that opened the same
entry using a URL, both effectively doing the same exact search (using a
request id).  The URL method took a full second more to load (about .6 for
OpenWindow vs. 1.6 seconds for the URL).  Using the browser's network
monitor I can see that it's performing some additional network
transactions, though (again) I really don't how to interpret these results
yet.

-charlie


On Sun, Apr 13, 2014 at 1:57 PM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I won’t pretend to know the answer – but have you ruled out some piece of
 search workflow that might be running when you use the application command,
 which might not be running with an optimal search criteria, which might not
 be triggered during the regular Open Window action? I wouldn’t have thought
 there would  be a difference in the performance when essentially you are
 doing the same thing.



 Joe


  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Sunday, April 13, 2014 1:51 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* OpenWindow vs. PERFORM-ACTION-OPEN-URL



 **

 Hi,



 Recently I was experimenting using PERFORM-ACTION-OPEN-URL instead of an
 OpenWindow action to open a Modify window on a specific entry (using the
 ?eid=request id parameter).  It's easy enough to use and I certainly got
 it working, but the performance as compared to OpenWindow was abysmal.



 My guess is that this has something to do with browser caching...maybe
 this method can't use the cache or something.  But I'm not sure since I
 don't really know anything about how browser caching works.  I opened up
 the Network Monitoring console on Netscape and do see some significant
 differences in the request/response transactions, but I don't quite know
 how to interpret it.



 Does anyone have any thoughts or experience as to why I'm seeing this
 performance difference or how to mitigate it if at all possible?  I've
 tried it on each of IE, Chrome,  Netscape with similar results.



 FYI here are my reasons for potentially wanting to use
 PERFORM-ACTION-OPEN-URL: when (in the natural course of navigating through
 my application) the user wishes to modify some entry, I have some
 generalized workflow that causes the app to open a Modify window.  If the
 window is opened using OpenWindow, though, and the user subsequently
 attempts to refresh the browser page, it's converted to a Query (Search)
 window and the context is lost.



 Similarly, I was hoping to preserve browser history functionality for the
 user.  If a user navigates from one entry to another (on the same for or a
 different one), then the browser's Back and Forward functions should work
 correctly and revisit the appropriate previously visited entries in modify
 mode, but with OpenWindow they don't.



 Using PERFORM-ACTION-OPEN-URL accomplishes both of these goals NICELY and
 I'd switch my generalized workflow to use it except for the performance
 issue.



 Any thoughts?



 Thanks,

 Charlie
  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Filter Push to View Form

2014-04-05 Thread Charlie Lotridge
Hi Todd,

When you say when we restore the old filter, do you mean loading it from
a definitions file (.def or .xml?) or are you restoring it some other way
(e.g. a database restore).  If you can load the definition from a
definitions file and get it to work correctly then an approach using this
might be the solution.

In my experience, there are many things that the Dev Studio (and the old
Admin Tool before it) does on your behalf that you really may not want it
to do.  For example, imposing the 80 name limit on workflow objects (I've
discussed this an another thread some time back), another is that it will
change the Z ordering value of some fields even if you haven't touched
those fields (it doesn't change the relative Z ordering of fields, but it
can change the actual value).  This may be one of those situations: the Dev
Studio may be changing the CRLF into CR because it thinks that's what you
want for some reason.

This method as a solution will be a LOT easier to do using the XML
definitions format...much easier to read and edit, so first figure out if
you can load a working version of the old filter using XML by dumping it
into a .xml definitions file, re-loading it, and testing.  If it works
correctly, use XML.  Otherwise you'll need to use the .def format which
will be a bit harder but doable.

Either way, dump out .xml (or .def) file of the old definition.  Next, make
the most minimal change to the filter so that it DOES cause the change from
CRLF to LF, then dump that version into another .xml.  Now examine and
compare both files...you should be able to see the difference in the
definitions causing the problem (extra line feeds or something).

Next, modify the filter to include the new changes you need, then dump that
out to a .xml.  Now hand modify it so that whatever is causing the problem
has been eliminated, then reload it.  This *should* solve the problem.

If you've never done anything like this it may sound a bit involved, but it
really should only take a few minutes to complete.  I do this kind of thing
all the time.  Without actually seeing the problem myself I can only
describe this process in generalities, but if I'm not being clear please
let me know.  Or, if you can post these definition files and sufficient
context so that I can try it myself, I'd be happy to try to help.

-charlie


On Fri, Apr 4, 2014 at 9:11 AM, Arner, Todd tar...@glhec.org wrote:

 **

 We are having an issue with some custom workflow.  We have a Remedy form
 that holds data related to employee terminations.  When an employee is
 terminated we use a filter push action (See below for sample of data being
 pushed) to send data to a Remedy view form in SQL.   Next, there is a
 separate external process that pickups the data from the SQL table and
 creates a .txt file containing the data.  We have been using this process
 for a couple of years without an issue. This past weekend we had to make a
 change to the data being sent.  After updating the filter, we are seeing
 issues with how the line feed is being sent to the sql table.  Prior to
 changing the filter the line feeds were being sent as Carriage Return Line
 Feeds (CRLF) and after the change they are being sent as line feed (LF).
 This is causing an issue because the .txt file that is created no longer
 returns the data with returns but rather sends it as a line of text.



 If we restore the old original filter (created on version 7.5), it works
 correctly, but as soon as we make any update to that filter (using version
 8.1), it starts sending as the data as LF instead of CRLF.  To make things
 more confusing, if I pull the filter push action data into notepad++ it
 indicates that there are CRLF at the end of each line on both the original
 and updated filters.  So, I would expect that the SQL table would also
 include CRLF but it does not on the updated filter.



 Is anyone else seeing anything like this or know if a solution?



 Below is the value of the data being pushed to the SQL table that comes
 through with LF instead of CRLF:



 Employee Last Name:   + $RecLastName$) + 

 Employee First Name:  ) + $RecFirstName$) + 

 eQIP Number:  ) + $IR #$) + 

 Date of Hire:  ) + $Hire Date$) + 

 Contract ID:  ) + $Contract Number$) + 

 System Access:  ) + $System Access$) + 

 Term Date:  ) + $Termination Date$





 We are running ARS 8.1 on windows server with MS SQL 2008



 Thanks,

 Todd Arner


  --
 The information contained in this communication may be confidential, is
 intended only for the use of the recipient(s) named above, and may be
 legally privileged. If the reader of this message is not the intended
 recipient, you are hereby notified that any dissemination, distribution, or
 copying of this communication, or any of its contents, is strictly
 prohibited. If you have received this communication in error, please notify
 the sender immediately and destroy or delete the original message and any
 copy 

Esoteric Bugs relating to ARS View forms

2014-03-28 Thread Charlie Lotridge
If you use ARS views, this could be a problem for you.

It's probably no surprise that if you modify the SQL table (or view) used
as the table for an ARS view, and (effectively) rename one of the columns
used by one of the ARS view fields, the ARS view breaks.

What I discovered, though, is that if you simply go into the view
definition modify the Column property in the View Information section of
the properties for that field to have the corrected column name, it DOES
accept this change back in the server, but the server DOES NOT update the
data dictionary with this change.  So, a subsequent bounce of ARS will
restore the old, incorrect column name.

The work-around is to delete the field from the view (cut it), save the
view, then paste it back in and correct the column name.

This SQL query will reveal any such problems in your system (written for
SQL Server but probably pretty easily adapted to other DBs):

SELECT s.name, f.fieldName, sv.tableName, vm.extField AS Bad Column Name
FROM arschema s
JOIN field f
ON f.schemaId = s.schemaId
AND f.fOption != 4
JOIN schema_view sv
ON sv.schemaId = s.schemaId
JOIN view_mapping vm
ON vm.schemaId = s.schemaId
AND vm.fieldId = f.fieldId
LEFT OUTER JOIN sys.all_objects t
ON t.name = SUBSTRING(sv.tableName, 1, LEN(CAST(sv.tableName AS
NVARCHAR(128))) - 1)
AND t.type in ('U', 'V') -- User Table or View
LEFT OUTER JOIN sys.columns c
ON t.object_id = c.object_id
AND c.name = vm.extField
WHERE c.object_id IS NULL

Another interesting and impactful bug related to this (and, in fact, how I
originally discovered there was a problem with my view form), is that if
you export the bad view form definition and import it into another server,
it WILL import with only a warning:

Warning (69): Creation of one of the SQL views for the form failed within
the SQL database.
Form is created successfully, but the SQL view is not in place.: view name

where view name here is the name of the courtesy SQL view that Remedy
creates for each form (e.g. the Customer SQL view ARS will create for
your Customer form).

For view forms, the T table itself is a SQL view defined on the
underlying SQL table (or view), and the courtesy SQL view that ARS then
creates is simply another SQL view on top of the T table view.  So it
would appear from the warning that only this final SQL view creation is
failing.  However, a SQL log I captured during such an import revealed that
the creation of the T table view itself was also failing.  But apparently
this is not being noticed by ARS, because it does go on to create the ARS
data dictionary stuff for the form (i.e. the form WILL appear in your list
of forms on that server).  However, any attempt to actually use the form
fails with a cryptic message such as:

The SQL database operation failed. :
Invalid object name 'T435'. (SQL Server 208) (ARERR 552)

Anyway, sorry for the complex description here and hopefully I haven't left
anyone interested too confused...let me know if you have any questions.

I don't currently have a client, so I have no active support id through
which I can submit a ticket on this.  So, anyone, feel free to do so if
this affects you.

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Esoteric Bugs relating to ARS View forms

2014-03-28 Thread Charlie Lotridge
I'm running on server version 8.1.00 201301251157.  Of course, I guess they
may've fixed this in a subsequent patch...

-charlie


On Fri, Mar 28, 2014 at 1:58 PM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Charlie,
 All I can say is 'WOW' :).that's just insane.  Can you provide your
 exact version/patch?


 On Fri, Mar 28, 2014 at 2:27 PM, Charlie Lotridge lotri...@mcs-sf.comwrote:

 **
 If you use ARS views, this could be a problem for you.

 It's probably no surprise that if you modify the SQL table (or view) used
 as the table for an ARS view, and (effectively) rename one of the columns
 used by one of the ARS view fields, the ARS view breaks.

 What I discovered, though, is that if you simply go into the view
 definition modify the Column property in the View Information section of
 the properties for that field to have the corrected column name, it DOES
 accept this change back in the server, but the server DOES NOT update the
 data dictionary with this change.  So, a subsequent bounce of ARS will
 restore the old, incorrect column name.

 The work-around is to delete the field from the view (cut it), save the
 view, then paste it back in and correct the column name.

 This SQL query will reveal any such problems in your system (written for
 SQL Server but probably pretty easily adapted to other DBs):

 SELECT s.name, f.fieldName, sv.tableName, vm.extField AS Bad Column
 Name
 FROM arschema s
 JOIN field f
  ON f.schemaId = s.schemaId
 AND f.fOption != 4
 JOIN schema_view sv
  ON sv.schemaId = s.schemaId
 JOIN view_mapping vm
 ON vm.schemaId = s.schemaId
  AND vm.fieldId = f.fieldId
 LEFT OUTER JOIN sys.all_objects t
 ON t.name = SUBSTRING(sv.tableName, 1, LEN(CAST(sv.tableName AS
 NVARCHAR(128))) - 1)
  AND t.type in ('U', 'V') -- User Table or View
 LEFT OUTER JOIN sys.columns c
 ON t.object_id = c.object_id
  AND c.name = vm.extField
 WHERE c.object_id IS NULL

 Another interesting and impactful bug related to this (and, in fact, how
 I originally discovered there was a problem with my view form), is that if
 you export the bad view form definition and import it into another server,
 it WILL import with only a warning:

 Warning (69): Creation of one of the SQL views for the form failed within
 the SQL database.
 Form is created successfully, but the SQL view is not in place.: view
 name

 where view name here is the name of the courtesy SQL view that Remedy
 creates for each form (e.g. the Customer SQL view ARS will create for
 your Customer form).

 For view forms, the T table itself is a SQL view defined on the
 underlying SQL table (or view), and the courtesy SQL view that ARS then
 creates is simply another SQL view on top of the T table view.  So it
 would appear from the warning that only this final SQL view creation is
 failing.  However, a SQL log I captured during such an import revealed that
 the creation of the T table view itself was also failing.  But apparently
 this is not being noticed by ARS, because it does go on to create the ARS
 data dictionary stuff for the form (i.e. the form WILL appear in your list
 of forms on that server).  However, any attempt to actually use the form
 fails with a cryptic message such as:

 The SQL database operation failed. :
 Invalid object name 'T435'. (SQL Server 208) (ARERR 552)

 Anyway, sorry for the complex description here and hopefully I haven't
 left anyone interested too confused...let me know if you have any questions.

 I don't currently have a client, so I have no active support id through
 which I can submit a ticket on this.  So, anyone, feel free to do so if
 this affects you.

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Menu Bar in mid-tier (v8.1)

2014-03-20 Thread Charlie Lotridge
Jason, thanks for this info.  This is what the evidence was suggesting, but
it's nice to get the confirmation.  Of course, it would've also been nice
had there been mention of this in the docs (I've added a comment to that
doc page re. this).

Thanks also for the Javascript tips...I'll certainly research it.

Cool tool Misa.  It unfortunately doesn't quite help me here since I don't
actually have any menus that need converting (and was looking to introduce
one mostly to leverage the hot key functionality), but I'm sure many will
find something like this very useful.

Thanks,
Charlie


On Thu, Mar 20, 2014 at 1:25 AM, Joe D'Souza jdso...@shyle.net wrote:

 That is a neat idea! After all it's only a change of display type of the
 item! BMC should have thought of something like that before completely
 deprecating a particular existing function!

 Cheers

 Joe

 -Original Message-
 From: Action Request System discussion list(ARSList)
 [mailto:arslist@ARSLIST.ORG] On Behalf Of Misi Mladoniczky
 Sent: Thursday, March 20, 2014 3:31 AM
 To: arslist@ARSLIST.ORG
 Subject: Re: Menu Bar in mid-tier (v8.1)

 Hi,

 I have created a tool that will convert all currently defined menus and
 items
 to a navigation-field instead.

 I used it at a customer site to convert some 100 forms with menu bar
 defined.

 The navigation bar will retain the menu/sub-menu layout of the original
 menu.

 Your original menu-fields will be moved to the navigation bar and will
 retain
 their permissions etc. In other words you do not need to do anything with
 your
 active links.

 https://rrr.se/cgi/tools/main?tool=rrrMenuToNav

 Process:
 1. Export all your forms to a all.def
 2. Run rrrMenuNav.exe -i all.def -o nav.def -id {freefieldid} forms.txt
 3. Import the nav.def ontop of your forms
 4. Go through the list of forms.txt to move and resize the navigation field
 in
 DevStudio

 The {freefieldid} should be replaced with the field id you choose for your
 navigation field on all forms. This field id should not be used today.

 Best Regards - Misi, RRR AB, http://www.rrr.se (ARSList MVP 2011)

 Ask the Remedy Licensing Experts (Best R.O.I. Award at WWRUG10/11/12/13):
 * RRR|License - Not enough Remedy licenses? Save money by optimizing.
 * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy logs.
 Find these products, and many free tools and utilities, at http://rrr.se.

  The menu bar died with the User Tool.  It was never an option in the web
  UI.  Dev Studio supports it because there is still a shipping version of
 AR
  System that includes the User Tool (and probably backward comparability
 for
  a little while).
 
  Here is a white paper on behavioral differences between WUT and browser
  clients (it is older so a few things may have changed like copy to new is
  now supported in 7.6.04 SP5 and 8.1 SP1):
 

 https://docs.bmc.com/docs/download/attachments/165478929/ARS_DifferencesBetw
 eenBMCRemedyUserandBrowserClients_7604.pdf
  ?
 
  Pg 22.
  BMC Remedy User
  A menu bar is available in BMC Remedy User.
 
  Browser
  A menu bar is not available in browsers.
 
  As for an alternate hot key feature in Mid Tier I am not aware of an out
 of
  the box one.  You probably can dive into some custom JavaScript to detect
 a
  hot key combination and then call a guide.  Here is some info on adding
  functionality using JavaScript.
 
  Enhancing MT user experience with JavaScript; Part
  1https://communities.bmc.com/docs/DOC-21816
  Enhancing MT user experience with JavaScript; Part
  2https://communities.bmc.com/docs/DOC-21818
 
  Jason
 
 
  On Wed, Mar 19, 2014 at 9:30 AM, Charlie Lotridge
 lotri...@mcs-sf.comwrote:
 
  **
  Hi,
 
  Can anyone tell me if the Menu Bar functionality has been deprecated in
  the mid-tier?
 
  The Dev Studio allows me to specify menu bar menus and items just like
 the
  Admin tool used to, but I don't see these anywhere when I open the form
 in
  the browser.  The documentation
 
 
 https://docs.bmc.com/docs/display/public/ars81/Using+buttons+and+menu+bar+i
 tems+to+execute+active+linkshas
  corresponding descriptions about how to create menu bar menus and hook
 up
  workflow, but does not seem to describe where in the UI these will
 appear.
 
  Am I missing something obvious?
 
  I'm actually most interested in creating menu bar items in that you can
  (supposedly) introduce a hot key so that Alt-the hot key will
 trigger
  the menu bar item and corresponding workflow.  If the menu bar has been
  deprecated, or this doesn't work (quite frankly I was never able to get
  this completely working in the old User tool), is there another way I
 can
  affect this?
 
  Thanks,
  Charlie
  _ARSlist: Where the Answers Are and have been for 20 years_
 
 

 
 ___
  UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
  Where the Answers Are, and have been for 20 years

Re: $NULL$ = $NULL$?

2014-03-20 Thread Charlie Lotridge
This looks like it might be generated workflow.  If so, whatever generated
it might normally have a field it would put in place of one side of the
relation (normally resulting in 'Some Field' = $NULL$), but for whatever
reason in these cases it didn't have such a field so harmlessly substituted
$NULL$.

-charlie


On Thu, Mar 20, 2014 at 9:08 AM, Joe D'Souza jdso...@shyle.net wrote:

 It shouldn't harm anything as the system will evaluate it like 1=1 and
 return TRUE always on that part of the qualification.

 At worst it would just require a tiny extra micro millisecond to process
 that part while evaluating the qualification :-)

 Cheers

 Joe


 -Original Message-
 From: Action Request System discussion list(ARSList)
 [mailto:arslist@ARSLIST.ORG] On Behalf Of Kemes, Lisa A DLA CTR
 INFORMATION
 OPERATIONS
 Sent: Thursday, March 20, 2014 12:02 PM
 To: arslist@ARSLIST.ORG
 Subject: Re: $NULL$ = $NULL$?

 They have this as the Run If Qualification on 4 escalations.

 Thanks so much, it looked like a mistake to me, but doesn't look like
 it's harming anything.

 -Original Message-
 From: Action Request System discussion list(ARSList)
 [mailto:arslist@ARSLIST.ORG] On Behalf Of Joe D'Souza
 Sent: Thursday, March 20, 2014 11:59 AM
 To: arslist@ARSLIST.ORG
 Subject: Re: $NULL$ = $NULL$?

 **

 I'm guessing its another way to write something that is always TRUE. But
 even if that is what it is, it does not make sense why its needed.



 If that part of the qualification always returns T, we can have two
 possibilities

 T AND T = T which would have been T anyway.

 F AND T = F which would have been F anyway.



 So I would think its just some sort of a fat finger during development
 that never got noticed because it worked as it was supposed to anyway.



 Joe



 

 From: Action Request System discussion list(ARSList)
 [mailto:arslist@ARSLIST.ORG] On Behalf Of Kemes, Lisa A DLA CTR
 INFORMATION OPERATIONS
 Sent: Thursday, March 20, 2014 11:52 AM
 To: arslist@ARSLIST.ORG
 Subject: $NULL$ = $NULL$?



 We got a hotfix from BMC and the Run If Qualification is:
 ('AssetClassId' = BMC_COMPUTERSYSTEM) AND ($NULL$ = $NULL$)



 What does $NULL$ = $NULL$ do?



 Lisa Kemes

 Remedy Consultant

 Dev Technology Group

 DLA Office: (717) 770-6437

 Cell Phone: (717) 602-9460

 lisa.ke...@devtechnology.com





 _ARSlist: Where the Answers Are and have been for 20 years_ _ARSlist:
 Where the Answers Are and have been for 20 years_


 
 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Menu Bar in mid-tier (v8.1)

2014-03-19 Thread Charlie Lotridge
Hi,

Can anyone tell me if the Menu Bar functionality has been deprecated in the
mid-tier?

The Dev Studio allows me to specify menu bar menus and items just like the
Admin tool used to, but I don't see these anywhere when I open the form in
the browser.  The documentation
https://docs.bmc.com/docs/display/public/ars81/Using+buttons+and+menu+bar+items+to+execute+active+linkshas
corresponding descriptions about how to create menu bar menus and hook up
workflow, but does not seem to describe where in the UI these will appear.

Am I missing something obvious?

I'm actually most interested in creating menu bar items in that you can
(supposedly) introduce a hot key so that Alt-the hot key will trigger
the menu bar item and corresponding workflow.  If the menu bar has been
deprecated, or this doesn't work (quite frankly I was never able to get
this completely working in the old User tool), is there another way I can
affect this?

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: BMC should have made upgrades easier - Customers loosing interests

2014-03-11 Thread Charlie Lotridge
I don't really have the time for this, but let me jump into the fray with a
few somewhat related but disparate points of my own...

First, with regard to the bad resources issue, I've been seeing pattern
for years.  On three separate occasions in my career as a Remedy Developer
contractor, I've been brought in by clients who had a custom
Remedy application which were in varying degrees of being train wrecks.
 The types of problems included extremely poor data architecture, hundreds
of forms and many with no use (and names such as Test *in production*),
thousands of workflow objects with no use and no useful naming conventions,
escalations spinning out of control, etc.  In two cases I was able to
tame the systems, but in one case it was so bad I outright refused to
even try (I suggested they either find another resource or allow me to
build a new system from scratch..fortunately they chose the latter).

I came to realize that there were two main factors that had enabled these
situations.  First, the fact that the Remedy ARS system makes it so easy to
perform development operations - create forms, create workflow that does
useful things, etc. - that many people who have no business architecting
and developing applications where doing just that.  In candid conversations
with clients, I've describe this situation by saying that any idiot can
develop in Remedy, and unfortunately many of them do.

This was compound by second factor, which is (was) the confusion Remedy
themselves created in the early days by collapsing the notions of
administrator and developer.  When I was originally taught to use
Remedy, the topics about how to install  configure Remedy were taught
right along side the topics about how to create forms and workflow.  The
documentation largely followed suit.  In fact it's only relatively recently
that the main development tool actually has the word develop in its name
and is *not *the (BMC) Remedy *Administrator*.

So these Remedy administrators - people who perhaps had the background to
understand and been taught to perform actual administrative tasks - were
then asked to implement changes to the system because, in everyone's mind,
the notion of Remedy administration naturally extended to performing such
changes.  These people then go on to create a few forms and some workflow
successfully.  They created their Customer form and they created their
Inventory form and some workflow around all of this.  And, at first,
everyone's happy because they were able to get this done so quickly.  Time
goes on and they're repeatedly asked to extend the system, and for a while
everyone remains happy.

What happens next (which is what happened in each of those three train
wreck systems I've described) is that at some point the system grows
beyond the developer's ability to manage.  In my experience it seems to
happen somewhere around a few tens of forms and perhaps a few hundred logic
objects.  In all cases by the time I was brought in the original developers
were gone, but my own forensic analysis of those systems suggested to me
that at this point in the growth of the application the original developer
was no longer able to fully comprehend what was going on.  Before this
point they were able to keep it all in there head and knew where to find
things, but at this point the system just became too large for this
approach, and their lack of skill and coding discipline (e.g. good naming
conventions) meant they had no other recourse.  Problems (bugs) would occur
but the developer was unable to debug the problem.  And instead of
identifying and correcting the root cause (which in many cases were due to
fundamental problems with the data architecture), the developer would add a
patch to fix the problem: e.g. the client expected the result to be 100,
so they add a filter to set it to 100 at the end.

So instead of *reducing *the problem set, these developers actually
expanded it.  This pattern would continue for a while until the momentum of
the system eventually ground to a halt, leaving a barely functioning system
on which no one present could implement any changes for fear of making it
worse and the client complaining loudly that none of their changes, even
simple ones, were not being done.  I've only been occasionally or
peripherally involved with the canned apps - what's ITSM now, and what were
the component apps (e.g. Help Desk) a long time ago - but from what I've
seen the pattern there was similar: people with administrator level skills
at best were asked to implement changes, and for the same reasons
eventually reducing the system to being unchangeable and largely unusable.
 And the nearly indelible feeling that everyone - the users and management
understandably, and even some of these so-called developers (not so
understandably) - takes away from this experience is that Remedy sucks.

Does this sound familiar?

It's all really unfortunately because the problem of course has nothing to
do with the core 

Re: Get Entry filter trigger - request for opinions

2014-02-22 Thread Charlie Lotridge
Just a few more pieces of info on this for posterity...

A filter level Set Fields that pulls from a schema that has a Get Entry
filter will NOT trigger that Get Entry filter.  However, an active link
level Set Fields (that pulls from a schema that has a Get Entry filter)
WILL trigger the Get Entry filter.

This makes perfect sense to me, in that the AL's Set Fields is going to use
the ARGetEntry API (which we know triggers these Get Entry filters).
 However, it's just something to keep in mind when setting these up.

-c


On Fri, Feb 21, 2014 at 1:01 PM, Misi Mladoniczky m...@rrr.se wrote:

 Hi,

 An ACTL is triggered by the user, and definitely involves the browser. If
 it
 needs to access data on the server, it naturally goes to the mid-tier and
 then
 to the server and then to the DB and back again.

 I use GetEntry filters a lot, as it removes a bunch of roundtrips to the
 server involving latency etc. along each trip.

 If something is very rarely used by the client, you can always do it in
 ACTL:s, but if something is commonly needed when retrieving a request, it
 is
 good to use GetEntry filters.

 The ServiceCall is also a very nice thing. On one roundtrip to the server
 you
 can do a bunch of things within an ACTL ServicecCall.

 Best Regards - Misi, RRR AB, http://rrr.se

  Hi Fred,
 
  So, interesting...I was thinking that the AL's pulling that data were
 fired
  directly in the user's browser, so there would be three legs: browser to
  mid-tier, mid-tier to ARS, and ARS to DB.  Are you saying that those AL's
  are actually executed by the mid-tier?  I really don't yet know enough
  about the division of labor between the mid-tier and the browser.
 
  The $CLIENT-TYPE$ idea is excellent.  Thanks.
 
  -charlie
 
 
  On Fri, Feb 21, 2014 at 11:52 AM, Grooms, Frederick W 
  frederick.w.gro...@xo.com wrote:
 
  **
 
  Yes we are using them here.
 
 
 
  You are describing exactly the reason to use the Get Entry filters.
  (Actually
  the User Tool pulling the data in an Active Link is the same as
 Mid-Tier.
  Client to ARS, ARS to DB)
 
 
 
  If you are worried about it being pulled when it is not being used by a
  visible user you can use the $CLIENT-TYPE$ to only have the filter fire
  when you want it to.
 
 
 
  Fred
 
 
 
 
 
  *From:* Action Request System discussion list(ARSList) [mailto:
  arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
  *Sent:* Friday, February 21, 2014 1:44 PM
  *To:* arslist@ARSLIST.ORG
  *Subject:* Get Entry filter trigger - request for opinions
 
 
 
  **
 
  Hi all,
 
 
 
  In some 20+ years of doing Remedy development, if I've written 2 filters
  that use Get Entry as a trigger, that's a lot.  I've just never found
 any
  significant reason to use the mechanism.  But now I'm having second
  thoughts.
 
 
 
  So, first, I'd like to get an idea...does anyone use Get Entry filters?
   Does ITSM (I've never really worked with it)?  If so, what are the use
  cases for this?
 
 
 
  Now on to my own new potential use case: If a user (of an application
 I've
  written) opens a form on some entry that has foreign keys, and assuming
 it
  makes sense to do so, I'll pull descriptive information from the foreign
  form into local display fields.  So, for example, if we have a
 one-to-many
  from Customer to Invoice, and the user opens an Invoice, I'll use the
  Customer ID on the Invoice to pull maybe the Customer Name into a local.
   Nothing new here and I'm sure every application does this to some
 degree.
 
 
 
  Historically I've done this using active links.  With the heavy client
  User Tool, this approach has always made the most sense to me.  For one
  thing, if the active link was being invoked, I could be sure a user was
  actually going to see the pulled data (the active link only would fire
 if
  the user were opening the record), so the effort was not wasted.  For
  another, since the User tool was more tightly coupled than the mid-tier,
  the requests and replies didn't have to hit the wires so many times (2
  round-trips for each request: User tool to ARS, ARS to DB).
 
 
 
  I've only recently moved up from v7.1 to v8.1, and only with this change
  have I really started using and adopting the mid-tier.  So I'm
 relatively
  new to thinking about how to best and most efficiently use it.  Given,
  though, that it introduces both additional processing and an additional
  round-trip (mid-tier to ARS), I'm now wondering if I should adopt a
  different approach to pulling this foreign descriptive data.
  Specifically,
  I'm wondering if I should instead have Get Entry filters set up to pull
 it
  on the entry's way up from the database to the user.
 
 
 
  The upside of this approach is that it'll be much quicker for the
  transactional user who is opening these entries individually (and for
 whom
  this foreign descriptive data is intended).  The downside of course is
 that
  this data will potentially be fetched every time the entry is retrieved

Get Entry filter trigger - request for opinions

2014-02-21 Thread Charlie Lotridge
Hi all,

In some 20+ years of doing Remedy development, if I've written 2 filters
that use Get Entry as a trigger, that's a lot.  I've just never found any
significant reason to use the mechanism.  But now I'm having second
thoughts.

So, first, I'd like to get an idea...does anyone use Get Entry filters?
 Does ITSM (I've never really worked with it)?  If so, what are the use
cases for this?

Now on to my own new potential use case: If a user (of an application I've
written) opens a form on some entry that has foreign keys, and assuming it
makes sense to do so, I'll pull descriptive information from the foreign
form into local display fields.  So, for example, if we have a one-to-many
from Customer to Invoice, and the user opens an Invoice, I'll use the
Customer ID on the Invoice to pull maybe the Customer Name into a local.
 Nothing new here and I'm sure every application does this to some degree.

Historically I've done this using active links.  With the heavy client User
Tool, this approach has always made the most sense to me.  For one thing,
if the active link was being invoked, I could be sure a user was actually
going to see the pulled data (the active link only would fire if the user
were opening the record), so the effort was not wasted.  For another, since
the User tool was more tightly coupled than the mid-tier, the requests and
replies didn't have to hit the wires so many times (2 round-trips for each
request: User tool to ARS, ARS to DB).

I've only recently moved up from v7.1 to v8.1, and only with this change
have I really started using and adopting the mid-tier.  So I'm relatively
new to thinking about how to best and most efficiently use it.  Given,
though, that it introduces both additional processing and an additional
round-trip (mid-tier to ARS), I'm now wondering if I should adopt a
different approach to pulling this foreign descriptive data.  Specifically,
I'm wondering if I should instead have Get Entry filters set up to pull it
on the entry's way up from the database to the user.

The upside of this approach is that it'll be much quicker for the
transactional user who is opening these entries individually (and for whom
this foreign descriptive data is intended).  The downside of course is that
this data will potentially be fetched every time the entry is retrieved,
whether or not it'll be seen by any user or not (e.g. reporting, API
programs, etc.).

A quick aside: I just ran a quick test to discover that while the
ARGetEntry API certainly does invoke Get Entry triggered filters, the
ARGetListEntryWithFields API does not.  So this may not be as bad as I
thought since, at least, a query list on the form (which uses
ARGetListEntryWithFields) will not invoke these filters.  It's true that
any kind of automation or reporting tool that processes on an
entry-by-entry bases WILL invoke these filters, but this is probably the
exceptional situation and well worth the enhanced user experience.

Well, after about an hour of writing this email and doing the research, at
this point I'm pretty much convinced that Get Entry is the way to go for
this.  But I'll send this out anyway to maybe provoke some Friday afternoon
conversation.  I'm still curious if  how people use Get Entry filters.

Thoughts?  Comments?

-charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Get Entry filter trigger - request for opinions

2014-02-21 Thread Charlie Lotridge
Hi Fred,

So, interesting...I was thinking that the AL's pulling that data were fired
directly in the user's browser, so there would be three legs: browser to
mid-tier, mid-tier to ARS, and ARS to DB.  Are you saying that those AL's
are actually executed by the mid-tier?  I really don't yet know enough
about the division of labor between the mid-tier and the browser.

The $CLIENT-TYPE$ idea is excellent.  Thanks.

-charlie


On Fri, Feb 21, 2014 at 11:52 AM, Grooms, Frederick W 
frederick.w.gro...@xo.com wrote:

 **

 Yes we are using them here.



 You are describing exactly the reason to use the Get Entry filters.  (Actually
 the User Tool pulling the data in an Active Link is the same as Mid-Tier.
 Client to ARS, ARS to DB)



 If you are worried about it being pulled when it is not being used by a
 visible user you can use the $CLIENT-TYPE$ to only have the filter fire
 when you want it to.



 Fred





 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Friday, February 21, 2014 1:44 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Get Entry filter trigger - request for opinions



 **

 Hi all,



 In some 20+ years of doing Remedy development, if I've written 2 filters
 that use Get Entry as a trigger, that's a lot.  I've just never found any
 significant reason to use the mechanism.  But now I'm having second
 thoughts.



 So, first, I'd like to get an idea...does anyone use Get Entry filters?
  Does ITSM (I've never really worked with it)?  If so, what are the use
 cases for this?



 Now on to my own new potential use case: If a user (of an application I've
 written) opens a form on some entry that has foreign keys, and assuming it
 makes sense to do so, I'll pull descriptive information from the foreign
 form into local display fields.  So, for example, if we have a one-to-many
 from Customer to Invoice, and the user opens an Invoice, I'll use the
 Customer ID on the Invoice to pull maybe the Customer Name into a local.
  Nothing new here and I'm sure every application does this to some degree.



 Historically I've done this using active links.  With the heavy client
 User Tool, this approach has always made the most sense to me.  For one
 thing, if the active link was being invoked, I could be sure a user was
 actually going to see the pulled data (the active link only would fire if
 the user were opening the record), so the effort was not wasted.  For
 another, since the User tool was more tightly coupled than the mid-tier,
 the requests and replies didn't have to hit the wires so many times (2
 round-trips for each request: User tool to ARS, ARS to DB).



 I've only recently moved up from v7.1 to v8.1, and only with this change
 have I really started using and adopting the mid-tier.  So I'm relatively
 new to thinking about how to best and most efficiently use it.  Given,
 though, that it introduces both additional processing and an additional
 round-trip (mid-tier to ARS), I'm now wondering if I should adopt a
 different approach to pulling this foreign descriptive data.  Specifically,
 I'm wondering if I should instead have Get Entry filters set up to pull it
 on the entry's way up from the database to the user.



 The upside of this approach is that it'll be much quicker for the
 transactional user who is opening these entries individually (and for whom
 this foreign descriptive data is intended).  The downside of course is that
 this data will potentially be fetched every time the entry is retrieved,
 whether or not it'll be seen by any user or not (e.g. reporting, API
 programs, etc.).



 A quick aside: I just ran a quick test to discover that while the
 ARGetEntry API certainly does invoke Get Entry triggered filters, the
 ARGetListEntryWithFields API does not.  So this may not be as bad as I
 thought since, at least, a query list on the form (which uses
 ARGetListEntryWithFields) will not invoke these filters.  It's true that
 any kind of automation or reporting tool that processes on an
 entry-by-entry bases WILL invoke these filters, but this is probably the
 exceptional situation and well worth the enhanced user experience.



 Well, after about an hour of writing this email and doing the research, at
 this point I'm pretty much convinced that Get Entry is the way to go for
 this.  But I'll send this out anyway to maybe provoke some Friday afternoon
 conversation.  I'm still curious if  how people use Get Entry filters.



 Thoughts?  Comments?



 -charlie

 _ARSlist: Where the Answers Are and have been for 20 years_
  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


FYI...SQL in Set Fields MUST begin with SELECT

2014-02-20 Thread Charlie Lotridge
I use quite a lot of SQL in my workflow, yet somehow never discovered this
one before.  It turns out that if you're using SQL to pull data back for a
Set Fields action, it must begin with the SELECT keyword, or it won't
return any results.

For example, if you have a Set Fields with this SQL:

*SELECT name*
*FROM arschema*

it'll work fine.  But if you insert a comment before it:

*-- Comment*
*SELECT name*
*FROM arschema*

or even

*/* Comment */ SELECT name*
*FROM arschema*

the Set Fields will operate as if No Request Match (i.e. it'll display
the No Match error, or set the target fields to NULL, depending upon how
you've got it configured).

What's interesting here is that the SQL in these queries is syntactically
correct and they're submitted to the database by ARS without any error.  If
you submit the SQL manually (through SQL Plus or SQL Server Management
Studio, etc), it works correctly and returns the expected data.
 Apparently, though, Remedy doesn't know how to deal with it if it doesn't
begin with the keyword SELECT.

I only just discovered this because I was attempting to use a query
containing a WITH clause in SQL Server to create a Common Table Expression
to flatten out a recursive data structure.  Using the WITH clause, which
MUST be first in the query (and can't be contained in a subquery) is the
only way to do this in a single query.

Of course, the work-around is to create a view containing the CTE, which is
what I ultimately had to do.  It's just a less convenient solution.

Anyway, just something interesting I just discovered.

-charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: FYI...SQL in Set Fields MUST begin with SELECT

2014-02-20 Thread Charlie Lotridge
Interesting, thanks for this info.

I suppose this could be what's going on, but I'd think it would be more
appropriate for ARS to error if the SQL violates some rules, rather than
operate as if the query returned no results.  It's misleading.  Also, the
documentation mentions nothing about any such rules.

That Jaspersoft doc mentions that the SQL should start with SELECT
and cannot
have comments.  And while Remedy seems to be adhering to the first part of
this, it's not adhering to the second: I was able to insert comments both
as separate lines, and at the end of lines, and it works correctly.

-charlie


On Thu, Feb 20, 2014 at 12:12 PM, Janie Sprenger jrsrem...@gmail.comwrote:

 **
 I think there are security requirements for web applications and one of
 the requirements is to prevent SQL injection.  Not sure, but perhaps Remedy
 is using something of this sort with the midtier.

 I ran into something similar with iReports and Jaspersoft when I was
 writing an SQL query only mine happened to be with setting a variable to
 begin with instead of a Comment.  I could run the iReport in the tool but
 not on the JasperSoft web client.

 You can read more about it here.

 http://community.jaspersoft.com/wiki/jaspersoft-security-changes-and-configuration

 Janie

 On Thu, Feb 20, 2014 at 11:59 AM, Charlie Lotridge lotri...@mcs-sf.comwrote:

 **
 I use quite a lot of SQL in my workflow, yet somehow never discovered
 this one before.  It turns out that if you're using SQL to pull data back
 for a Set Fields action, it must begin with the SELECT keyword, or it won't
 return any results.

 For example, if you have a Set Fields with this SQL:

 *SELECT name*
 *FROM arschema*

 it'll work fine.  But if you insert a comment before it:

 *-- Comment*
 *SELECT name*
 *FROM arschema*

 or even

 */* Comment */ SELECT name*
 *FROM arschema*

 the Set Fields will operate as if No Request Match (i.e. it'll display
 the No Match error, or set the target fields to NULL, depending upon how
 you've got it configured).

 What's interesting here is that the SQL in these queries is syntactically
 correct and they're submitted to the database by ARS without any error.  If
 you submit the SQL manually (through SQL Plus or SQL Server Management
 Studio, etc), it works correctly and returns the expected data.
  Apparently, though, Remedy doesn't know how to deal with it if it doesn't
 begin with the keyword SELECT.

 I only just discovered this because I was attempting to use a query
 containing a WITH clause in SQL Server to create a Common Table Expression
 to flatten out a recursive data structure.  Using the WITH clause, which
 MUST be first in the query (and can't be contained in a subquery) is the
 only way to do this in a single query.

 Of course, the work-around is to create a view containing the CTE, which
 is what I ultimately had to do.  It's just a less convenient solution.

 Anyway, just something interesting I just discovered.

 -charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: FYI...SQL in Set Fields MUST begin with SELECT

2014-02-20 Thread Charlie Lotridge
LJ, the doc indeed does say that there's no syntax checking, and I did
chase it down the rabbit hole insofar as to do a SQL log to confirm that
ARS thinks it's submitting the SQL to the DB.  Just to make sure, I then
cut  pasted that same SQL from the SQL log and into a query window and
executed it - it worked just as expected.

Shawn, WRT stored procedures, the
dochttps://docs.bmc.com/docs/display/public/ars81/Assigning+values+through+SQL+statementssays
A
stored procedure with a Set Fields action executes all its commands but
does *not* return a value.  If your stored procedure returns a result set
you'd like to use in a Set Fields then, again, the solution here would be
to wrap the call to the stored procedure in a SQL view and call that.  And,
again, it's a less convenient solution.


On Thu, Feb 20, 2014 at 12:30 PM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 the interesting thing is that what I remember of the docs state that
 Remedy does no syntax checking of your SQL to determine if it's accurate,
 it trusts you to do that.  And because of that, I must wonder if you traced
 the SQL all the way to the DB and determine what it's doing with thatto
 see if it's executing it or notnot sure what would be found if you went
 down that rabbit hole.


 On Thu, Feb 20, 2014 at 1:25 PM, Charlie Lotridge lotri...@mcs-sf.comwrote:

 **
 Interesting, thanks for this info.

 I suppose this could be what's going on, but I'd think it would be more
 appropriate for ARS to error if the SQL violates some rules, rather than
 operate as if the query returned no results.  It's misleading.  Also, the
 documentation mentions nothing about any such rules.

 That Jaspersoft doc mentions that the SQL should start with SELECT and
 cannot have comments.  And while Remedy seems to be adhering to the
 first part of this, it's not adhering to the second: I was able to insert
 comments both as separate lines, and at the end of lines, and it works
 correctly.

 -charlie


 On Thu, Feb 20, 2014 at 12:12 PM, Janie Sprenger jrsrem...@gmail.comwrote:

 **
 I think there are security requirements for web applications and one of
 the requirements is to prevent SQL injection.  Not sure, but perhaps Remedy
 is using something of this sort with the midtier.

  I ran into something similar with iReports and Jaspersoft when I was
 writing an SQL query only mine happened to be with setting a variable to
 begin with instead of a Comment.  I could run the iReport in the tool but
 not on the JasperSoft web client.

 You can read more about it here.

 http://community.jaspersoft.com/wiki/jaspersoft-security-changes-and-configuration

 Janie

 On Thu, Feb 20, 2014 at 11:59 AM, Charlie Lotridge 
 lotri...@mcs-sf.comwrote:

 **
 I use quite a lot of SQL in my workflow, yet somehow never discovered
 this one before.  It turns out that if you're using SQL to pull data back
 for a Set Fields action, it must begin with the SELECT keyword, or it won't
 return any results.

 For example, if you have a Set Fields with this SQL:

 *SELECT name*
 *FROM arschema*

 it'll work fine.  But if you insert a comment before it:

 *-- Comment*
 *SELECT name*
 *FROM arschema*

 or even

 */* Comment */ SELECT name*
 *FROM arschema*

 the Set Fields will operate as if No Request Match (i.e. it'll
 display the No Match error, or set the target fields to NULL, depending
 upon how you've got it configured).

 What's interesting here is that the SQL in these queries is
 syntactically correct and they're submitted to the database by ARS without
 any error.  If you submit the SQL manually (through SQL Plus or SQL Server
 Management Studio, etc), it works correctly and returns the expected data.
  Apparently, though, Remedy doesn't know how to deal with it if it doesn't
 begin with the keyword SELECT.

 I only just discovered this because I was attempting to use a query
 containing a WITH clause in SQL Server to create a Common Table Expression
 to flatten out a recursive data structure.  Using the WITH clause, which
 MUST be first in the query (and can't be contained in a subquery) is the
 only way to do this in a single query.

 Of course, the work-around is to create a view containing the CTE,
 which is what I ultimately had to do.  It's just a less convenient 
 solution.

 Anyway, just something interesting I just discovered.

 -charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: FYI...SQL in Set Fields MUST begin with SELECT

2014-02-20 Thread Charlie Lotridge
Yeah, things start to get funny when you surpass the varchar limit
(typically 4000 chars) and head into LOB territory.  Maybe it had something
to do with that.

I've never used such a large query in a Set Fields, so I don't think I've
ever seen this issue.

-charlie


On Thu, Feb 20, 2014 at 3:21 PM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I've once hit a limitation wherein a long SQL command (which ran perfectly
 on the SQL client) didn't work within the SQL Set Fields action and
 returned an error (do not recall what error as this was many years ago). So
 since then I have tried to limit my use of SQL in Set Fields only if the
 number of fields you are returning back are few. I do not know if this
 limitation is now not an issue. If I recall right, I hit this limitation in
 a very early release of 7.0 and I recall testing it on 6.3 and found that
 to be true on that version too.



 If I recall right, the limitation was not because of the number of fields
 being returned, but the actual string length of the SQL statement.



 Joe


  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Thursday, February 20, 2014 3:25 PM

 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: FYI...SQL in Set Fields MUST begin with SELECT



 **

 Interesting, thanks for this info.



 I suppose this could be what's going on, but I'd think it would be more
 appropriate for ARS to error if the SQL violates some rules, rather than
 operate as if the query returned no results.  It's misleading.  Also, the
 documentation mentions nothing about any such rules.



 That Jaspersoft doc mentions that the SQL should start with SELECT and 
 cannot
 have comments.  And while Remedy seems to be adhering to the first part of
 this, it's not adhering to the second: I was able to insert comments both
 as separate lines, and at the end of lines, and it works correctly.



 -charlie



 On Thu, Feb 20, 2014 at 12:12 PM, Janie Sprenger jrsrem...@gmail.com
 wrote:

 **

 I think there are security requirements for web applications and one of
 the requirements is to prevent SQL injection.  Not sure, but perhaps Remedy
 is using something of this sort with the midtier.



 I ran into something similar with iReports and Jaspersoft when I was
 writing an SQL query only mine happened to be with setting a variable to
 begin with instead of a Comment.  I could run the iReport in the tool but
 not on the JasperSoft web client.



 You can read more about it here.


 http://community.jaspersoft.com/wiki/jaspersoft-security-changes-and-configuration

 Janie



 On Thu, Feb 20, 2014 at 11:59 AM, Charlie Lotridge lotri...@mcs-sf.com
 wrote:

 **

 I use quite a lot of SQL in my workflow, yet somehow never discovered this
 one before.  It turns out that if you're using SQL to pull data back for a
 Set Fields action, it must begin with the SELECT keyword, or it won't
 return any results.



 For example, if you have a Set Fields with this SQL:



 *SELECT name*

 *FROM arschema*



 it'll work fine.  But if you insert a comment before it:



 *-- Comment*

 *SELECT name*

 *FROM arschema*



 or even



 */* Comment */ SELECT name*

 *FROM arschema*



 the Set Fields will operate as if No Request Match (i.e. it'll display
 the No Match error, or set the target fields to NULL, depending upon how
 you've got it configured).



 What's interesting here is that the SQL in these queries is syntactically
 correct and they're submitted to the database by ARS without any error.  If
 you submit the SQL manually (through SQL Plus or SQL Server Management
 Studio, etc), it works correctly and returns the expected data.
  Apparently, though, Remedy doesn't know how to deal with it if it doesn't
 begin with the keyword SELECT.



 I only just discovered this because I was attempting to use a query
 containing a WITH clause in SQL Server to create a Common Table Expression
 to flatten out a recursive data structure.  Using the WITH clause, which
 MUST be first in the query (and can't be contained in a subquery) is the
 only way to do this in a single query.



 Of course, the work-around is to create a view containing the CTE, which
 is what I ultimately had to do.  It's just a less convenient solution.



 Anyway, just something interesting I just discovered.



 -charlie

 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_



 _ARSlist: Where the Answers Are and have been for 20 years_
  _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Why does the ARS Service take so long to start?

2014-02-19 Thread Charlie Lotridge
Another thing to keep in mind is fragmentation of the ARS data dictionary.
 During startup, (I'm 99% sure that) ARS pulls the entire data dictionary
into memory.  Over time, as you implement changes and unless you've taken
steps to mitigate the problem, the DD will become increasingly fragmented.
 I'm a little out of my depth on this, but it seems to make sense that if
you have a very large database, this can mean that the DD data is spread
throughout your tens/hundreds/thousands of GB of user data, and that in
turn can mean that it takes the DB a while to gather it all up during
startup.

Preventative mitigation strategies would include sequestering the DD tables
so that this can't happen.  I'm getting much further out of my depth, but I
have a vague recollection that you used to somehow be able to direct ARS
how to use Oracle segments, though I don't recall the granularity of this
and don't know if the configuration mechanism still exists (I've dabbled a
bit I'm far from being an Oracle DBA).  And while I'm not a SQL server DBA
either, I'm much more familiar with it as a database, and I can see how
with a bit of manual effort you could certainly sequester the ARS DD tables
into their own filegroup.

A reactive strategy (i.e. relieve existing fragmentation) would be to
copy-restore the DB, or at least the ARS tables.

-charlie


On Wed, Feb 19, 2014 at 8:14 AM, Tauf Chowdhury taufc...@gmail.com wrote:

 **
 I recall a while back someone explained that there is also a difference
 between SQL and Oracle DB where The ITSM env on Oracle takes longer to
 start than SQL Server

 Sent from my iPhone

 On Feb 19, 2014, at 10:18 AM, Pierson, Shawn 
 shawn.pier...@energytransfer.com wrote:

 **

 You bring up a good point.  From what I've seen the CPU and RAM are never
 too high even when starting up, and the database connection should actually
 be a decent connection (both servers are on the same switch, which I can
 tell thanks to ADDM) but I'd think that probably is one of the limiting
 factors of startup.  My suspicion is that BMC's increasing reliance on
 plugins, which seem to be black boxes that are hard to gain visibility
 into, is a major factor as well.



 It would be an interesting test to have two pieces of the same hardware
 with AR System installed, one with the full ITSM, another without ITSM (but
 for charity include the supporting AR System modules like Approval that
 normally aren't used in fully custom shops) but with an equal number of
 forms, groups, and users, and time the startup times of both.



 Thanks,



 *Shawn Pierson *

 Remedy Developer | Energy Transfer



 *From:* Action Request System discussion list(ARSList) [
 mailto:arslist@ARSLIST.ORG arslist@ARSLIST.ORG] *On Behalf Of *LJ
 LongWing
 *Sent:* Wednesday, February 19, 2014 8:15 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: Why does the ARS Service take so long to start?



 **

 Shawn,

 In later versions of Remedy, you have the options to utilize multiple
 threads during the startup.  As Rick points out, the main thing that Remedy
 is doing is pulling metadata out of the DB and storing it in RAM.  So,
 there is a direct correlation between how many forms/fields/etc that you
 have, and how quickly you can get them out of the DB and into memory that
 determines how quickly your Remedy starts.  Do you have that dedicated
 Fiber channel between your DB and App server that Remedy recommends? :)



 On Wed, Feb 19, 2014 at 5:57 AM, Pierson, Shawn 
 shawn.pier...@energytransfer.com wrote:

 **

 Since I have nothing better to do (just kidding, I'm swamped) I wanted to
 see if anyone on the list had a good explanation for something that has
 been an issue across multiple versions of Remedy for years.  Specifically,
 on Windows, why does it take so long for Remedy to start up, and is there
 anything that can be done to make it load faster without sacrificing
 performance or functionality?



 If someone has found a way to get it to start up in less than 30 seconds,
 you should be given a job by BMC.  It's been a while since I've worked with
 Remedy on Unix but I don't recall it taking as long to start as it does on
 Windows.



 Thanks,



 *Shawn Pierson *

 Remedy Developer | Energy Transfer



 Private and confidential as detailed 
 herehttp://www.energytransfer.com/mail_disclaimer.aspx.
 If you cannot access hyperlink, please e-mail sender.

 _ARSlist: Where the Answers Are and have been for 20 years_



 _ARSlist: Where the Answers Are and have been for 20 years_
  Private and confidential as detailed 
 herehttp://www.energytransfer.com/mail_disclaimer.aspx.
 If you cannot access hyperlink, please e-mail sender. _ARSlist: Where the
 Answers Are and have been for 20 years_

 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Why the 80 character name limit on workflow objects?

2014-02-19 Thread Charlie Lotridge
In the recent Friday Special thread, there was some discussion about
object naming and the need for good naming conventions.

The naming convention I've developed for my own use over the years starts
with a structured portion (identifying the schema, triggering criteria,
execution order, etc), but allows for a brief description of the objects
purpose at the end.  This is very convenient, because the fact is that the
name is by far the best way to document the workflow in an easily
accessible and meaningful way (Help Text requires you to open the object
making it not very convenient).

As someone who exclusively does custom workflow (and a lot of custom
workflow), I very frequently bump up against the 80 character limit on the
names of objects (specifically AL's, filters, and guides).  And just as
frequently, I use one of a few tricks to disregard the limit and set the
name to be whatever it is I'd like it to be.

The fact is, the underlying data dictionary columns for these names support
values up to 254 characters in length (at least on Oracle  SQL Server).
 Also, the ARS server itself doesn't care if these name lengths exceed the
80 character limit (in that it won't throw an error if the name exceeds 80,
but as I've never tried to exceed the 254 column limit so I don't know what
it would do).  And the workflow works just fine...I've been doing this for
years.

In fact, the *only *thing imposing that limit is the Dev Studio (and the
Admin tool before it).  With either, though, selecting multiple objects
then using the Edit-Rename mechanism is one way to expand the name beyond
the limit.  But this is an inconvenient and awkward way of doing it.

So why the limit?  Can anyone hazard a guess?  Or...Doug?

Does anyone else find this inconvenient?

-charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Friday Special, The First Post to the ARSList

2014-02-17 Thread Charlie Lotridge
Hi Joe,

Sure the Return trigger works with checkboxes, and exactly as though it
were a drop-down or a radio button (in fact, I suspect the underlying
mechanism is completely divorced from the display type of the selection
field).

Try this:

Create a selection field with the display type initially set to Radio
Button, then create an Return triggered AL that does something (a message,
say).  Make sure it works.

Then, switch the display type to checkbox.  It should still work.

I use this mechanism (Return triggered AL's on checkboxes) extensively.
 I'm quite sure it works.

Or perhaps I'm misunderstanding the problem you're describing...?

-charlie


On Mon, Feb 17, 2014 at 1:20 PM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I could not understand the benefit (still do not) of checkboxes over radio
 buttons, at least the way they functionally work in the ARS. I'll explain..



 Sure they are an extension to Radio Buttons in the sense that in the GUI,
 they are squared up and only a single checkbox option per check box field.



 I get that.



 What I do not get is why would certain functionality like that of the
 action 'Return' not work with checkboxes on selection of its value, as it
 would if it were a Radio Button. If that is by design, what really was the
 purpose of deprecating those functions from checkboxes but making them
 available on a single value radio button?



 Joe
  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Reiser, John J
 *Sent:* Monday, February 17, 2014 1:55 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: Friday Special, The First Post to the ARSList



 I've been working Remedy since before the dark days.

 I started with ARS 2.0 and ARtext 1.5x in late 1994. I cheered when
 checkboxes were announced until they showed us that they were square single
 choice radio buttons, but I digress.

 All  custom all the time.

 I lost my original enrollment date in ARSList when an overzealous Exchange
 server rejected every posting as spam but Dan got me back online quickly.

 I didn't want to leave 4.5.2 and now I'm faced with weaning people off of
 7.6.0x for the Mid Tier.

 I've come to accept the Dev Studio but still work with Les' ARUtilities
 and Misi's RRR tools to get things done.

 Good times, good times.

 Thank you,

 ---
 John J. Reiser
 Remedy Developer/Administrator

 Senior Software Development Analyst
 Lockheed Martin - MS2
 The star that burns twice as bright burns half as long.
 Pay close attention and be illuminated by its brilliance. - paraphrased by
 me



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Grooms, Frederick W
 *Sent:* Friday, February 14, 2014 4:13 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* EXTERNAL: Re: Friday Special, The First Post to the ARSList



 **

 I wonder how many List members are from 2000 or earlier



 Some of us are still 100% pure custom (no CMDB, no ITSM)

 Fred



 *From:* Action Request System discussion list(ARSList) [
 mailto:arslist@ARSLIST.ORG arslist@ARSLIST.ORG] *On Behalf Of *Daniel
 *Sent:* Friday, February 14, 2014 3:04 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* ADM: Friday Special, The First Post to the ARSList



 **

 Well, me being me I have chosen a random Friday for this. I was a bit busy
 on the true anniversary date.

 So, for fun, I thought I would repost the first post to the ARSlist, which
 of course was me. I took the liberty of correcting my spelling errors.



 For the newbies on the list, the ones that joined after around 1995,
 originally there was no Help Desk or ITSM suite, at some point Remedy Corp.
 created a Help Desk template. We created our own Help Desk from scratch,
 which of course with the Remedy Admin tool didn't take long J 21 years
 ago we had a 3.5GL that provided more functionality to developers than
 Service Now has created so far for it's developers, but I digress.



 ... Dan



 -



 Date: Tue, 2 Nov 1993 10:03:20 -0500

 From: Daniel Bloom, Senior Consultant, CCIS/Help Services 
 dan...@yorku.ca

 Subject: Welcome

 To: arsl...@orion.yorku.ca

 Errors-To: postmas...@orion.yorku.ca

 Reply-To: arsl...@orion.yorku.ca

 Message-Id: 9311021003.zm18...@afep.yorku.ca

 X-Envelope-To: d...@remedy.com

 X-Mailer: Z-Mail (2.1.5 20sep93)

 Status: RO





 I've just noticed that there are currently 27 registrants to the list, but
 no

 one has ever sent a note to it! Hence this note.



 Welcome to the ARS List, primarily for the discussion of ARS related
 issues by

 those members of the HelpDesk list that are running this product. It is
 *not*

 meant to replace the HelpDesk list, nor act as a clearing house of problems

 that should be directed to Technical Support at

 Remedy Corp. Sometimes it

 could be quicker than waiting for a response from Remedy Corp. and
 obviously

 we have the practical experience in using the 

Re: Friday Special, The First Post to the ARSList

2014-02-17 Thread Charlie Lotridge
Currently I'm using v8.1, but only recently came up from 7.1 where I'm also
sure it (trigger on Return) worked.

My immediate recollection (which I'm guessing is wrong from what you're
describing) is that menu select never did work on selection fields but
only on return.  And I recall that this was always confusing to me
because when the display type is drop-down, you're essentially selecting
from a menu.  So why is the trigger on return?  Always seemed weird.

But if I am wrong and menu select did used to work, well, then at worst
it's an inconvenience to identify and switch from menu select to on
return.  At least workflow is triggerable on the action of checking (or
unchecking) a checkbox.


On Mon, Feb 17, 2014 at 1:36 PM, Joe D'Souza jdso...@shyle.net wrote:

 **

 Then it is perhaps not the Return. Its perhaps the Menu Select..



 Play around with it - one of them do not work. This was from version
 (whenever it was that check boxes came out) until 7.6.04. I have not worked
 with 8.x to see if it is still the case with it.



 When I first noticed it not working in the very first version when check
 boxes were out, I did exactly what you asked me to try. Changed display
 type from radio to check box and it failed, but when I reversed, it worked
 with no change in workflow.



 What version are you on?



 Joe
  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Monday, February 17, 2014 4:30 PM

 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: Friday Special, The First Post to the ARSList



 **

 Hi Joe,



 Sure the Return trigger works with checkboxes, and exactly as though it
 were a drop-down or a radio button (in fact, I suspect the underlying
 mechanism is completely divorced from the display type of the selection
 field).



 Try this:



 Create a selection field with the display type initially set to Radio
 Button, then create an Return triggered AL that does something (a message,
 say).  Make sure it works.



 Then, switch the display type to checkbox.  It should still work.



 I use this mechanism (Return triggered AL's on checkboxes) extensively.
  I'm quite sure it works.



 Or perhaps I'm misunderstanding the problem you're describing...?



 -charlie



 On Mon, Feb 17, 2014 at 1:20 PM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I could not understand the benefit (still do not) of checkboxes over radio
 buttons, at least the way they functionally work in the ARS. I'll explain..



 Sure they are an extension to Radio Buttons in the sense that in the GUI,
 they are squared up and only a single checkbox option per check box field.



 I get that.



 What I do not get is why would certain functionality like that of the
 action 'Return' not work with checkboxes on selection of its value, as it
 would if it were a Radio Button. If that is by design, what really was the
 purpose of deprecating those functions from checkboxes but making them
 available on a single value radio button?



 Joe
  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Reiser, John J
 *Sent:* Monday, February 17, 2014 1:55 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Re: Friday Special, The First Post to the ARSList



 I've been working Remedy since before the dark days.

 I started with ARS 2.0 and ARtext 1.5x in late 1994. I cheered when
 checkboxes were announced until they showed us that they were square single
 choice radio buttons, but I digress.

 All  custom all the time.

 I lost my original enrollment date in ARSList when an overzealous Exchange
 server rejected every posting as spam but Dan got me back online quickly.

 I didn't want to leave 4.5.2 and now I'm faced with weaning people off of
 7.6.0x for the Mid Tier.

 I've come to accept the Dev Studio but still work with Les' ARUtilities
 and Misi's RRR tools to get things done.

 Good times, good times.

 Thank you,

 ---
 John J. Reiser
 Remedy Developer/Administrator

 Senior Software Development Analyst
 Lockheed Martin - MS2
 The star that burns twice as bright burns half as long.
 Pay close attention and be illuminated by its brilliance. - paraphrased by
 me



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Grooms, Frederick W
 *Sent:* Friday, February 14, 2014 4:13 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* EXTERNAL: Re: Friday Special, The First Post to the ARSList



 **

 I wonder how many List members are from 2000 or earlier



 Some of us are still 100% pure custom (no CMDB, no ITSM)

 Fred



 *From:* Action Request System discussion list(ARSList) [
 mailto:arslist@ARSLIST.ORG arslist@ARSLIST.ORG] *On Behalf Of *Daniel
 *Sent:* Friday, February 14, 2014 3:04 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* ADM: Friday Special, The First Post to the ARSList



 **

 Well, me being me I have chosen a random

Re: Friday Special, The First Post to the ARSList

2014-02-14 Thread Charlie Lotridge
Hi Dan  Fred,

This brings back memories.

Though I've only been a very infrequent participant in the ARSList
(something I've been lately trying to change), I've been working with ARS
for nearly as long.  I was with Brookhaven National Lab (home of the RHIC)
back in the 93-94 timeframe when we bought ARS at version (something like)
1.2b.  I was the lead developer on our own project to implement our own
Help Desk.

In those days object names were only 30 characters in length, and the Admin
tool didn't allow for detailed listing, so you only had the names to go
by.  Imagine (or recollect) looking at the list of, say, filters for all
forms and not knowing which filter goes with which form, what triggers
they'd fire on, or what order they'd fire.  Good naming conventions were
critical.

There were no table fields and a more limited set of field data types.  And
if I remember correctly, no trim fields either.

There also was no shared workflow, but I've come to think that shared
workflow was a mistake anyway.

Yes, Fred, I also remain 100% custom, though I think I installed some of
ITSM once a long time ago...this doesn't count against me, does it?  ;)

-charlie


On Fri, Feb 14, 2014 at 1:13 PM, Grooms, Frederick W 
frederick.w.gro...@xo.com wrote:

 **

 I wonder how many List members are from 2000 or earlier



 Some of us are still 100% pure custom (no CMDB, no ITSM)

 Fred



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Daniel
 *Sent:* Friday, February 14, 2014 3:04 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* ADM: Friday Special, The First Post to the ARSList



 **

 Well, me being me I have chosen a random Friday for this. I was a bit busy
 on the true anniversary date.

 So, for fun, I thought I would repost the first post to the ARSlist, which
 of course was me. I took the liberty of correcting my spelling errors.



 For the newbies on the list, the ones that joined after around 1995,
 originally there was no Help Desk or ITSM suite, at some point Remedy Corp.
 created a Help Desk template. We created our own Help Desk from scratch,
 which of course with the Remedy Admin tool didn't take long J 21 years
 ago we had a 3.5GL that provided more functionality to developers than
 Service Now has created so far for it's developers, but I digress.



 ... Dan



 -



 Date: Tue, 2 Nov 1993 10:03:20 -0500

 From: Daniel Bloom, Senior Consultant, CCIS/Help Services 
 dan...@yorku.ca

 Subject: Welcome

 To: arsl...@orion.yorku.ca

 Errors-To: postmas...@orion.yorku.ca

 Reply-To: arsl...@orion.yorku.ca

 Message-Id: 9311021003.zm18...@afep.yorku.ca

 X-Envelope-To: d...@remedy.com

 X-Mailer: Z-Mail (2.1.5 20sep93)

 Status: RO





 I've just noticed that there are currently 27 registrants to the list, but
 no

 one has ever sent a note to it! Hence this note.



 Welcome to the ARS List, primarily for the discussion of ARS related
 issues by

 those members of the HelpDesk list that are running this product. It is
 *not*

 meant to replace the HelpDesk list, nor act as a clearing house of problems

 that should be directed to Technical Support at

 Remedy Corp. Sometimes it

 could be quicker than waiting for a response from Remedy Corp. and
 obviously

 we have the practical experience in using the product for real world
 situations.





 The first item that should be taken care of is the following:



 I invited Remedy Corporation to join us. They are represented by Doug
 Mueller,

 I believe officially a VP of the company, but in reality the backbone of
 the

 creation of the product. We couldn't do better.



 I warned Doug that if Remedy listens to, or at their own discretion

 participates in, discussions that they will have to take the bad with the
 good,

 and without retribution if they don't like what we say.



 Since it was an arbitrary decision by me to include them, I would like a
 vote

 on the subject. Could you all send a vote in to dan...@yorku.ca

 on Remedy inclusion/exclusion.



 Also, we should decide on posting a list to the list of all our members
 from

 time to time so we know who we all are. Perhaps if you all include whether

 you agree/disagree with posting a list to this list.



 Once again, welcome to you all, and I look forward to a useful and fun
 exchange

 of information.



 Just a quick statement of our use. We purchased the product around April
 1992,

 and went production with it in Nov. 1992.  We are about to have our first

 birthday of regular use. We have 5 production schemas, and are working on

 another 5 to become production soon.  One server: UNIX /Sun equivalent/

 with the run time SYBASE module as the data base engine. We use it as our

 problem tracker, major system problem alert, manuals data base, account
 tracker

 and shortly we will keep track of internal course registrations.

 ... dan







 Dan Bloom, Senior Consultant, CCIS/Help Services






  

Re: Remedy Form Archiving

2014-02-10 Thread Charlie Lotridge
Hi Nesma,

That's a good one.  The only thing I can think of is that you have some
workflow throwing an error and preventing the operation.  If this is the
case, here are a few thoughts on how you can locate the problem:

First, look for filters that Execute On on Delete and see if any of them
directly or indirectly trigger an Error type Message operation.

If this is happening, then due to the background nature of the archiving
mechanism, the message is not displayed for anyone anywhere.  I'm pretty
sure, though, that it'll be dumped into the arerror.log, so look there for
an indication of the problem.

Finally, failing all else, turn on filter logging and try deleting the
record manually...this may reveal the problem.

I hope something here helps.

Thanks,
Charlie


On Mon, Feb 10, 2014 at 3:54 AM, Nesma ElShal, Vodafone Egypt 
nesma.els...@vodafone.com wrote:

 **

 Dear Team,



 Please support me in this case:



 I'm trying to archive a form from form properties. And selected the
 archive and delete from source option. But the record is archived and
 isn't deleted from the source. What about this issue?



 Thanks.





 *Nesma Elshal*
 SYSTEM ANALYST
 Products  Services Delivery
 Vodafone Egypt
 Mobile: +20 (10) 02861931
 Email: nesma.els...@vodafone.com


 [image: Description: Vodafone] http://www.vodafone.com.eg/

 Vodafone Egypt, Smart Village : Vodafone C3 Building, Cairo/Alex. Desert
 Road KM 28- 6th of October City, Egypt

 *vodafone.com.eg* http://www.vodafone.com.eg








 *

 The content of this document is classified as Vodafone Egypt S.A.E.
 Confidential and Proprietary Information.

 The recipient hereby is committed to hold in strict confidence the
 contents of this (e-mail, document, information) and not to disclose to any
 third party without the prior written consent of Vodafone Egypt S.A.E.
 Recipient will be held liable for any unauthorized disclosure.

 If you have received this message in error, please notify the sender by
 return e-mail and delete the message in its entirety, including any
 attachments.

 http://www.vodafone.com.eg


 *

 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years
image001.gif

Re: Table Column Data Alignment issue

2014-01-28 Thread Charlie Lotridge
There have been no responses to this, so I'm guessing that no one has seen
this issue.  Can anyone confirm that this does work for them?  Or is it
perhaps a little used feature?

Thanks,
Charlie


On Sun, Jan 26, 2014 at 1:35 PM, Charlie Lotridge lotri...@mcs-sf.comwrote:

 Hi all,

 I have several (list type) tables that contain columns that contain
 integer values.  As stated in the documentation, these default to being
 right-aligned.  However, when there is any left-aligned value in the column
 immediately to the right, the data becomes nearly unreadable.  This is
 especially true if that left-aligned data itself displays numerically (e.g.
 timestamps).

 I've tried setting the Data Alignment property for these columns to both
 Left and Center, but it seems to have no effect - the numeric data remains
 right-aligned.

 Am I missing something?  Is there something else I need to do to affect
 the alignment adjustment?

 Note that just for kicks I tried setting the alignment of a character type
 column (which defaults to left) to right-alignment, but this also has no
 effect.  So the problem I'm having is not restricted to integer columns.

 On the other hand, changing the alignment of the headers seems to work
 just fine.

 Thanks,
 Charlie


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Table Column Data Alignment issue

2014-01-28 Thread Charlie Lotridge
Hi Joe,

Sorry for the confusion.  I'm talking about table fields on forms, and the
properties of the associated column fields.

In particular, if you select a column field (of a list type table) in the
Dev Studio, the in the Properties window under the Display section there
is a Data Alignment property with three options: Left, Center, and Right.
 Adjusting this property does not seem to have any effect - the data in the
column seems to align based on the default for the data type of the
underlying field.  So, character types and date/times are defaulting to
left aligned, and numerics (well, integers at least, I haven't tried on
reals) are defaulting to right aligned.

These properties are new to me, since I've only recently started working
ARS versions greater than 7.1 (which didn't allow for the adjustment of
alignment in columns).  Given this, I would figure that these options are
specific to the web UI and not for the old heavy client (User tool).
 However, I've tried using both Chrome and IE11, and it doesn't work on
either.

Does this clarify?  If not, I'll try to assemble a screenshot that makes
sense that's  250KB, though I think that'll prove a challenge.

Thanks,
Charlie



On Tue, Jan 28, 2014 at 9:05 AM, Joe D'Souza jdso...@shyle.net wrote:

 **

 I have not understood the problem you are trying to describe.



 Are you talking about data once exported to csv and viewed from Excel? Or
 are you talking about data in the results list when you perform a search on
 a form?



 A screenshot may help. Make sure the screenshot if you send does not make
 your email larger than 250KB or the ARS List will reject your posting.



 Joe


  --

 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Charlie Lotridge
 *Sent:* Sunday, January 26, 2014 4:35 PM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Table Column Data Alignment issue



 **

 Hi all,



 I have several (list type) tables that contain columns that contain
 integer values.  As stated in the documentation, these default to being
 right-aligned.  However, when there is any left-aligned value in the column
 immediately to the right, the data becomes nearly unreadable.  This is
 especially true if that left-aligned data itself displays numerically (e.g.
 timestamps).



 I've tried setting the Data Alignment property for these columns to both
 Left and Center, but it seems to have no effect - the numeric data remains
 right-aligned.



 Am I missing something?  Is there something else I need to do to affect
 the alignment adjustment?



 Note that just for kicks I tried setting the alignment of a character type
 column (which defaults to left) to right-alignment, but this also has no
 effect.  So the problem I'm having is not restricted to integer columns.



 On the other hand, changing the alignment of the headers seems to work
 just fine.



 Thanks,

 Charlie
  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Table Column Data Alignment issue

2014-01-26 Thread Charlie Lotridge
Hi all,

I have several (list type) tables that contain columns that contain integer
values.  As stated in the documentation, these default to being
right-aligned.  However, when there is any left-aligned value in the column
immediately to the right, the data becomes nearly unreadable.  This is
especially true if that left-aligned data itself displays numerically (e.g.
timestamps).

I've tried setting the Data Alignment property for these columns to both
Left and Center, but it seems to have no effect - the numeric data remains
right-aligned.

Am I missing something?  Is there something else I need to do to affect the
alignment adjustment?

Note that just for kicks I tried setting the alignment of a character type
column (which defaults to left) to right-alignment, but this also has no
effect.  So the problem I'm having is not restricted to integer columns.

On the other hand, changing the alignment of the headers seems to work just
fine.

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Using $GROUPS$ OR $GROUPIDS$ to hide fields for certain Groupid

2014-01-23 Thread Charlie Lotridge
Remedyart, you had it nearly right, but you need to use $GROUPIDS$ instead
of $GROUPS$ (and replace the colon with a semicolon at the end), so:

*$GROUPIDS$ LIKE %;10042;%*

should do the trick.

$GROUPS$ returns the *names* of the groups that the current user belongs
to, but without any separating syntax.  This makes it unreliable if you
have any groups with that have names which are substrings of other group
names.  For example, if you have a group call Operators and another
called Special Operators, there's no way (using $GROUPS$) to tell if a
user is in *just* the Operators group, since $GROUPS$ LIKE %Operators%
will also return true if the user is only in the Special Operators group.

This is why they introduced the newer $GROUPIDS$ keyword, which *does*
include separating syntax (semicolons).  In fact, more recently*** they
went so far as to ensure the that there are semicolons at the both the
beginning and end of the string, so that a comparison such as $GROUPIDS$
LIKE %;group id;% will always work.

[*** My vague recollection is that this wasn't always so.  I think there
didn't used to be starting or ending semicolons, forcing you to use much
more painful syntax: ($GROUPIDS$ LIKE 10042;%) OR ($GROUPIDS$
LIKE %;10042;%)
OR ($GROUPIDS$ LIKE %;10042)]

-charlie


On Thu, Jan 23, 2014 at 12:09 AM, SUBSCRIBE arslist Jabbie 
julesb...@gmail.com wrote:

 We did exactly the same thing using group ID - I think your additional
 syntax is interfering ... ie take out semi-colons and colons and just leave
 wild cards around the group ID.

 Just use $GROUPS$ LIKE %10042% and I think you'll find it will work
 fine.


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: CPU utilization sometimes goes up to 100%

2014-01-22 Thread Charlie Lotridge
Hi all,

LJ, ARS absolutely WILL generate nvarchar strings (using the N prefix) on
unicode servers, though I have no idea if this particular SQL is being
generated by ARS or not.

On my 8.1 dev box, Application Pending form has no defined indexes, so
there's only the clustered index on the request id.  This query doesn't hit
the request id, so it's going to result in a full table scan which is as
costly as it can get: each one of those queries will cause the DB to scan
through every record in the table.  If there are more than a few thousand
records, I can see how it could start to use up the hours and CPU Jennifer
has described.  It's also going to severely impact all other usage of the
DB.

Although I know this form has been around for a while, I have no idea what
it's for beyond the description in help text on the form itself.  I don't
work with ITSM (I've always done purely custom apps), but would guess it's
involved with integrating ITSM with ancillary applications.

However, the 'Status' field values suggest a lifecycle for entries that
would cause an accumulation of entries over time.  This is bad, since there
doesn't seem to be any provision to delete old data (there's no Audit
configuration to do this on the form).  If ITSM (or whatever) is using this
form frequently and creating many entries, then you're going to start
having problems with any queries against this form pretty quickly.

Jennifer, there are a number of things you can do.

1) Determine the source of that query if you can.  It seems unlikely to me
that it's being generated by any native ARS mechanism.  I would guess that
the queries generated by any native ARS mechanism (which would be looking
to run a pending application, whatever that might be) would look more like
WHERE C7 = 0 ('Status' = Pending).

If the query is important for the business, at a minimum create an index on
either of the 'Category' or 'Command' fields (it's hard to know which might
be better individually without seeing the data), or possibly even both (a
single index on both, not two indexes).  This will likely very
significantly improve the performance of those queries (from hours to
seconds).

2) Determine if the historic data is useful.  That it is being queried
would suggest it is, but determine the business significance if any.  If
there is none, configure the audit mechanism to delete obsolete data using
a qualification of, say, 'Status' = Deleted AND 'Last Changed Time' 
$DATE$ + (30 * 86400) [meaning, the entry was marked as Deleted or
Cancelled more than 30 days ago].  PLEASE, someone who has more experience
with this form chime in here - I have no idea if the lifecycle of entries
can evolve after they're marked Deleted or Cancelled, but am assuming not.

3) If you do instead decide to keep the historic data, you might also then
want to put an index on the Status field.  Again, my guess is that whatever
mechanism is responsible for executing the pending application entries in
this form identifies them using a query that includes 'Status' = Pending.
 Since there's no index on the 'Status' field, this will force a full table
scan.

If you do this, be sure that your DBA's are maintaining the statistics on
the indexes (which they should be doing anyway), since this one could get
very stale and cause bad DB optimizations.

Anyway, I hope something here helps.

Thanks,
Charlie


On Wed, Jan 22, 2014 at 6:07 AM, LJ LongWing lj.longw...@gmail.com wrote:

 **
 Brian,
 If you look into docs, the N being outside of the ' indicates that the
 string is going to be an nvarcharone thing this indicates to me is that
 the query is NOT Remedy generated, but maybe a direct sql statement or
 somethingbut I'm not 100% sure.


 On Wed, Jan 22, 2014 at 6:48 AM, Brian Goralczyk 
 bgoralczyk.w...@gmail.com wrote:

 **
 My first question is, Which system is having the cpu hit 100%?  If it is
 the db then indexes should help.  If it is the application server then you
 have either too much data being sent back or too much workflow firing on
 all the records.

 I would first check to see how many records you have in the table.
  Second I would look into the query.  What is calling it, and why does it
 have C8 = N'BR-CHK-CONFIG' as part of the qualification.  I am concerned
 initially about the N being outside the quotes.

 I would also run the query against the db directly and see how long that
 takes and how many rows it is returning.

 HTH,

 Brian Goralczyk


 On Wed, Jan 22, 2014 at 4:03 AM, Carl Wilson carlbwil...@gmail.comwrote:

 **

 Hi,

 I would verify the indexes that are present on Application Pending form
 to ensure that the field 'C501' has an index.

 Also, you may want to check the number of records in this form and
 delete entries that are not required (by default, processed records should
 be removed).


 --



 Kind Regards,



 *Carl Wilson*



 http://www.missingpiecessoftware.com/



 *From:* Action Request System discussion 

Re: Namesake Views

2014-01-22 Thread Charlie Lotridge
I've heard of this before, and my recollection is that people set up a
script to re-grant needed permissions like this that they need and run
after each release as part of the rollout procedure.

Question for the Oracle gurus out there: would it help to set up a level of
indirection on this?  Maybe create another view definitions such as:

CREATE VIEW MyHelpdeskView AS
SELECT *
FROM aradmin.hpd_help_desk

then grant the permissions to this and have the monitoring tool use it
instead.  This way (my perhaps naive thought is) the hpd_help_desk view can
be dropped and recreated and it won't affect either the function or
permissions of the MyHelpdeskView.

Would this work?

-charlie


On Wed, Jan 22, 2014 at 11:38 AM, Brittain, Mark mbritt...@navisite.comwrote:

 **

 HI All,



 The move from 6.3 (custom)  to 7.6  ITSM always seems to have more
 surprises than I care to sustain. Anyway, I have a monitoring tool that
 queries the hpd_help_desk view. The monitoring tool is granted permission
 to the view using the command “grant select on aradmin.hpd_help_desk to
 monitoringtool;



 Before today I did not know about these namesake views. Last night I added
 a field to the HPD:HelpD Desk and this query broke. Apparently there is a
 script that runs, deletes rather than updates the view and builds a new
 view. The result is any grants assigned to the view are wiped out.  After
 that monitoring tool could not query the view and the DatabaseError:
 ORA-00942: table or view does not exist was being returned.



 One solution would be to grant the permission the monitoring tool anytime
 the view is rebuilt. Not my favorite approach. Has anyone run into this and
 come up with a better solution?



 ARS 7.6.04

 ITSM 7.6.04

 Oracle 11



 Thanks

 Mark





 *Mark Brittain*

 Remedy Developer

 ITILv3 Foundation, Continual Service Improvement

 *NaviSite, Inc. – A Time Warner Cable Company*

 mbritt...@navisite.com

 Office: 315.634.9337

 Mobile: 315.882.5360

 [image: navsig]



 --
 This E-mail and any of its attachments may contain Time Warner Cable
 proprietary information, which is privileged, confidential, or subject to
 copyright belonging to Time Warner Cable. This E-mail is intended solely
 for the use of the individual or entity to which it is addressed. If you
 are not the intended recipient of this E-mail, you are hereby notified that
 any dissemination, distribution, copying, or action taken in relation to
 the contents of and attachments to this E-mail is strictly prohibited and
 may be unlawful. If you have received this E-mail in error, please notify
 the sender immediately and permanently delete the original and any copy of
 this E-mail and any printout.
  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years
image001.gif

Re: Dev Studio error

2014-01-20 Thread Charlie Lotridge
I was at the .1 release with no patch, but just brought it up to patch 02.
 Hopefully that'll help...thanks for the info!

-charlie


On Sun, Jan 19, 2014 at 10:21 AM, Jason Miller jason.mil...@gmail.comwrote:

 **
 What version of Dev Studio? The widget disposed error is a known issue.
  Support gave me a hotfix for it but I think it is addressed in the most
 recent patch of 8.1.

 Jason


 On Sun, Jan 19, 2014 at 9:02 AM, Charlie Lotridge lotri...@mcs-sf.comwrote:

 **
 Hi all,

 I've only recently moved past working with v7.1, so I'm relatively new to
 the Dev Studio.  While it's certainly got some benefits over the old Admin
 tool, it's also got some significant issues.

 One of the worst of these is that it's very frequently throwing an error
 that eventually makes a running instance unusable.  I'm not sure exactly
 what triggers it, but after 1/2 to 1 hour of focused usage, I get a popup
 with the following content:

 Title: Problem Occurred
 Details: An error has occurred.  See error log for more details.
 An error has occurred when activating this view
 Widget is disposed

 When it happens, it doesn't immediately shut down the tool, but once it
 happens during a session functionality starts eroding and the message
 starts popping up with increasing frequency.  The only solution seems to be
 restarting the tool, which destroys any development context I had.  I've
 only been working for about 1.5 hours this morning and it just happened for
 the third time.  It's very annoying.

 Is this a known issue?  Can anyone tell me how to fix or at least
 diagnose the problem?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_


 _ARSlist: Where the Answers Are and have been for 20 years_


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Dev Studio error

2014-01-19 Thread Charlie Lotridge
Hi all,

I've only recently moved past working with v7.1, so I'm relatively new to
the Dev Studio.  While it's certainly got some benefits over the old Admin
tool, it's also got some significant issues.

One of the worst of these is that it's very frequently throwing an error
that eventually makes a running instance unusable.  I'm not sure exactly
what triggers it, but after 1/2 to 1 hour of focused usage, I get a popup
with the following content:

Title: Problem Occurred
Details: An error has occurred.  See error log for more details.
An error has occurred when activating this view
Widget is disposed

When it happens, it doesn't immediately shut down the tool, but once it
happens during a session functionality starts eroding and the message
starts popping up with increasing frequency.  The only solution seems to be
restarting the tool, which destroys any development context I had.  I've
only been working for about 1.5 hours this morning and it just happened for
the third time.  It's very annoying.

Is this a known issue?  Can anyone tell me how to fix or at least diagnose
the problem?

Thanks,
Charlie

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Dev Studio error

2014-01-19 Thread Charlie Lotridge
No, I hadn't.  I'm not a java guy, but a quick look and research suggests
it'll be the -xmx option...is this correct?  I've bumped it from 1024 to
4096 to see if it'll help.

Thanks for the tip.

-charlie


On Sun, Jan 19, 2014 at 9:43 AM, LJ LongWing lj.longw...@gmail.com wrote:

 **

 Have you increased the memory allocated in the devstudio.ini?
 On Jan 19, 2014 10:03 AM, Charlie Lotridge lotri...@mcs-sf.com wrote:

 **
 Hi all,

 I've only recently moved past working with v7.1, so I'm relatively new to
 the Dev Studio.  While it's certainly got some benefits over the old Admin
 tool, it's also got some significant issues.

 One of the worst of these is that it's very frequently throwing an error
 that eventually makes a running instance unusable.  I'm not sure exactly
 what triggers it, but after 1/2 to 1 hour of focused usage, I get a popup
 with the following content:

 Title: Problem Occurred
 Details: An error has occurred.  See error log for more details.
 An error has occurred when activating this view
 Widget is disposed

 When it happens, it doesn't immediately shut down the tool, but once it
 happens during a session functionality starts eroding and the message
 starts popping up with increasing frequency.  The only solution seems to be
 restarting the tool, which destroys any development context I had.  I've
 only been working for about 1.5 hours this morning and it just happened for
 the third time.  It's very annoying.

 Is this a known issue?  Can anyone tell me how to fix or at least
 diagnose the problem?

 Thanks,
 Charlie
 _ARSlist: Where the Answers Are and have been for 20 years_

 _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Delta Data Migration for initial data migration.

2014-01-13 Thread Charlie Lotridge
Hi Ken,

For my last client (eBay), I orchestrated an upgrade from 7.1 to 8.1 (data
only, not UI) of a purely custom application (no ITSM).  The upgrade was
complicated by the fact that we decided to move from Oracle back-end to SQL
Server, which of course made doing either a direct in-place upgrade, or
using a db copy, impossible.

So, I designed and wrote a custom API program that analyzed the forms
containing data to be transferred, then dynamically constructed SQL that it
then ran on the target DB which pulled the bulk of the data directly from
DB to DB through a database link (all non-LOB data - the LOB data had to be
handled a bit differently).  We then just exported/imported the form 
workflow definitions to the new server, then ran this program to handle the
data.

This solution did not perform any data transformations between the systems
and in fact was designed assumed none were needed.  I don't know what kind
of data transformations need to take place during the upgrade path from 7.6
to 8.1. of ITSM, but if they're significant, this type of solution may not
work for you.

But if not, and if you need a solution like this and have the resources to
implemented it, I'd be happy to share more details about the strategy.  Let
me know.

Thanks,
Charlie


On Mon, Jan 13, 2014 at 7:09 AM, Cecil, Ken kce...@hubbell.com wrote:

 Misi,

 Will RRR|Chive work when moving from ITSM 7.6 to 8.1?  Do I have to define
 mapping to get from one version of the forms to the new version? Define
 mappings for all of the ITSM forms? How do I determine which forms?


 Ken.


 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Misi Mladoniczky
 Sent: Monday, January 13, 2014 9:44 AM
 To: arslist@ARSLIST.ORG
 Subject: Re: Delta Data Migration for initial data migration.

 Hi,

 While not solving the problem LJ is talking about, DDM is not really
 designed for such big data transfers. Try RRR|Chive instead.

 Best Regards - Misi, RRR AB, http://www.rrr.se (ARSList MVP 2011)

 Ask the Remedy Licensing Experts (Best R.O.I. Award at WWRUG10/11/12/13):
 * RRR|License - Not enough Remedy licenses? Save money by optimizing.
 * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy logs.
 Find these products, and many free tools and utilities, at http://rrr.se.

  Ken,
  Doing so will wipe out some critical information on your destination
  environment like shr properties records, cmdb class information, etc,
  I don't recommend running it in that situation.
  On Jan 12, 2014 10:20 PM, Cecil, Ken kce...@hubbell.com wrote:
 
  **
 
  Anybody tried using the Delta Data Migration utility for doing an
  initial data migration from one system to a new build that is not a
  db copy nor an upgraded system?
 
 
 
  Example,  Production 7.6 system to 8.1 system (clean db)
 
 
 
  It would seems like it should be possible in theory if you specify
  something early like (1/1/1970 as the start date).
 
 
 
 
 
  Ken.
 
 
 
 
  --
 
 
  -
  ---
 
 
  Confidentiality Requirement: This communication, including any
  attachment(s), may contain confidential information and is for the
  sole use of the intended recipient(s). If you are not the intended
  recipient, you are hereby notified that you have received this
  communication in error and any unauthorized review, use, disclosure,
  dissemination, distribution or copying of it or its contents is
  strictly prohibited.  If you have received this communication in
  error, please notify the sender immediately by telephone or e-mail
  and destroy all copies of this communication and any attachments.
  _ARSlist: Where the Answers Are and have been for 20 years_
 
  __
  _ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
  Where the Answers Are, and have been for 20 years
 


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Where the
 Answers Are, and have been for 20 years


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: Cleaning up forms before migration

2014-01-09 Thread Charlie Lotridge
Assuming you're planning to delete ALL the data in each of these forms, I
agree with Ken  Fred: using TRUNCATE TABLE is the only way to go.

If you only want to selectively delete data, well, that's going to be a lot
more painful though you still may want to consider using SQL (DELETE FROM)
for the operation and carefully construct the WHERE clauses for each of the
relevant tables.  Deleting 160 million entries through ARS will take
forever and would be the least attractive option to me.

Either way, absolutely coordinate this with your DBA's as this kind of
operation, and the magnitude of the data, will certainly have impact on
things like transaction logs.

-charlie


On Thu, Jan 9, 2014 at 1:02 PM, Grooms, Frederick W 
frederick.w.gro...@xo.com wrote:

 **

 We do it with a truncate table SQL command (since we want to delete
 everything)

 Simply find your schema ID for the form in question and Truncate the T, H,
 and B tables for that ID



 Fred





 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Cecil, Ken
 *Sent:* Thursday, January 09, 2014 2:58 PM
 *To:* arslist@ARSLIST.ORG

 *Subject:* Cleaning up forms before migration



 **

 We have some backend forms with large amounts of data that we don’t care
 about and would like to delete before doing a data migration.



 For example FB:History has over 160 million records. What is the best way
 to go about deleting data out of the forms that have gotten away from us.



 I know we should have set up escalations or archiving to prevent this.



 Obviously deleting them through search and delete is out of the question.
 If I set up an escalation to do it I think it would kill performance or
 take forever. How do you guys go about it.  Risky SQL?



 Thanks,



 Ken Cecil






  _ARSlist: Where the Answers Are and have been for 20 years_

___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years


Re: BMC Dev Studio - Windows 7

2014-01-08 Thread Charlie Lotridge
Neha, has the run as admin solution worked?  This really sounds like a
firewall issue to me.  In my experience having insufficient privileges
(which would be solved with running as Admin), would manifest as a problem
with running the Dev Studio executable or its access to local resources,
and not in a connection timeout.

Is the Win 7 box on a different wire than the XP box that works?  In this
case there might be a firewall between the Win 7 box and ARS that's
blocking the traffic.

Another possibility is that it's the Windows firewall on the Win 7 box
itself.  You could try turning it off temporarily to see if the problem
evaporates.  Brief instructions follow:

1) Open Windows Firewall in the Control Panel
2) Select the Turn Windows Firewall on or off link on the left
3) Select Turn off Windows Firewall (not recommended) in both the Home
or work and Public sections

A couple more notes...

First, it's possible that your network guys have disabled access to this
setting, so you may not be able to do it.

Also, if you can do it, be sure to undo your changes (i.e. turn it back on
again) when your done.

If you DO discover it's a firewall issue (Windows firewall or an external
box), your network guys should be able to help you poke a hole in it for
this traffic.

-charlie



On Wed, Jan 8, 2014 at 2:04 PM, Jason Miller jason.mil...@gmail.com wrote:

 **
 I wonder if that is organization specific?  I run as a limited user
 (unless I need to elevate privileges for special occasions) and have used
 Dev Studio on probably a dozen Win 7 64-bit machines in this configuration
 without issue.  DS is (more or less) just a Java process.  If your paths
 are all set and DS can write to the directory it needs to then it just
 works (without running as an admin).  I haven't done extensive testing but
 I think it only need write access to the workspace path which defaults to a
 location in your Window profile where you should already have write access.

 seems like there's a difference between running as an account in the
 Administrator group and as running as the administrator

 This is true.  In Win 7 even if you are an admin on the machine you still
 need to explicitly run some processes as administrator.  Similar to being a
 limited user on a *NIX machine and using sudo to elevate
 your privileges for a specific task.

 Jason


 On Wed, Jan 8, 2014 at 1:06 PM, Pierson, Shawn 
 shawn.pier...@energytransfer.com wrote:

 With Windows 7, things are a lot more complex than that even.  For
 example, I am a local administrator of my PC so I can install software and
 such.  However, Dev Studio, SQL Server Management Studio, Eclipse, and a
 few other things give me errors.  The only way around these errors for me
 is that I've pinned those apps to my Windows taskbar, then right clicked on
 them and went into the Properties, and on the Compatibility tab checked the
 Run this program as an administrator option under Privilege Level.

 There seems to be some issues specific to Windows 7, at least within my
 organization, that don't like certain interactions with things that are in
 the Program Files folders.  It seems like there's a difference between
 running as an account in the Administrator group and as running as the
 administrator.

 Thanks,

 Shawn Pierson
 Remedy Developer | Energy Transfer


 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Joe D'Souza
 Sent: Wednesday, January 08, 2014 2:43 PM
 To: arslist@ARSLIST.ORG
 Subject: Re: BMC Dev Studio - Windows 7

 Roney may be on the right track here..

 Alternative to running the dev studio as an administrator, I would permit
 the user that is using the dev studio to read, write, execute, delete
 (basically complete control) of the files in the Dev studios workspace.


 Cheers

 Joe


 -Original Message-
 From: Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] On Behalf Of Roney Samuel Varghese.
 Sent: Wednesday, January 08, 2014 9:50 AM
 To: arslist@ARSLIST.ORG
 Subject: Re: BMC Dev Studio - Windows 7

 Try running dev studio as administrator

 Regards,
 Roney Samuel Varghese.

 Sent from my iPhone

  On Jan 8, 2014, at 2:32 AM, Neha Khandelwal jbpn...@gmail.com wrote:
 
  Hi List,
 
  I need your assistance for following issue- On windows7 OS, when I am
  trying to connect to any server through BMC
 Developer Studio, I get connection time out error.
  While at the smae time, servers are getting connected on Windows XP
 machine.
 
  Can anyone please assist me, while installing or using BMC Developer
 Studio, and other setting alos need to be done?
 
  Regards
  Neha Khandelwal
 
 

 
 ___
  UNSUBSCRIBE or access ARSlist Archives at www.arslist.org Where the
  Answers Are, and have been for 20 years


 
 ___
 

Re: Multiple level join forms

2014-01-03 Thread Charlie Lotridge
When ARS performs data interaction with a Join form, it simply issues the
appropriate SQL against the SQL View it created to represent the Join
(named Tschema id of the join).  In situations like yours, that SQL View
itself references other SQL Views representing the lower level joins, and
so on.  So, what's really happening is that the DB optimizer must string
all this stuff together and compile the result before execution.
 Fortunately, this process is O(N), where N is the total number of joins,
so itself is not very bad at all.

The resulting SQL is similar to what you might create yourself if you had
to write the SQL to join all those forms (tables) together, though perhaps
not as well optimized as it could be.  Obviously, the more tables involved
in a query, the more complex it is and the longer it takes the database to
compute.  However, if this level of complexity is what is needed to get the
result you need, then it's what you need.

So, the point of all this is that all the complexity of pulling data from
such a Join is completely managed by the database itself, and not by ARS
(if you're pushing data into this thing...ugh...that's a different story).
 I'm not sure why BMC mentions that practical limit, though I would suspect
it has to do with the amount of work YOU have to do to maintain all those
Joins (more on this below).

I agree with Shawn, though: if you're concerned it's well worth your time
to understand the execution path being used by your queries to this thing,
and whether or not your indexes are being used correctly.

I've long since moved away from using ARS Join forms, and instead
exclusively use (and recommend) manually created SQL View on top of which I
create ARS View forms.  One immediate advantage for this particular example
is that instead of dealing with 9 ARS Join forms (for your 10 base forms),
you only need to deal with one View type form.

Another advantage is that you can structure the SQL to make maximum use of
available indexes (in Oracle, for example, you absolutely CAN include HINTs
in the SQL definition of the view to direct the optimizer to appropriately
leverage the available indexes).

A third advantage is the reduced maintenance.  For example, let me assume
that in your example you first joined Form1 to Form 2, then joined that to
Form 3, and so on.  Now, with the ARS Join based solution, if you want to
add a field from Form 1 you have to separately modify each of the 9 Joins
(this may be why BMC suggests that practical limit of 6).  With the SQL
View-Remedy View solution, you first modify the SQL view (to include the
column), then modify the ARS View form to add the field on top of the
column.

A fourth advantage is the ability to insert computed columns.  For
example, ARS Table fields of course only allow you to select one Selection
type field on which to base row coloring.  However, it may be the case that
the coloring scheme you wish to apply is more complex, and is based on
factors from some combination of fields (or even from foreign fields).  If
so, your only pure ARS based solution is to create a real (i.e. Optional or
Required) Selection field, and maintain its value through workflow.  This
can get VERY complicated.

In the SQL View/ARS View, the solution is very simple: just create a CASE
statement in the SQL View and in the ARS View, create a Selection field on
top of it.  In this paradigm, the ColorStatus (which is what I always call
the column  field) can be arbitrarily complex, yet simple to implement and
maintain.

Of course, one trade off is that this type of solution is a bit more
obscure than the Join based solution (because the SQL View is not visible
from within Dev Studio).  It also of course requires SQL knowledge, though
personally I feel this is an essential skill in Remedy application
development.  And finally, it requires some understanding of of the ARS
data dictionary (at least enough to know how to identify and interact with
the SQL Views ARS creates for such use (NOT the T/B/SH tables and views,
but the views it creates using your form and field names).  But I've been
doing this now for many years and find this solution far more manageable.

Anyway, my 2 cents.  Hope something in here helps.

-charlie


On Fri, Jan 3, 2014 at 11:30 AM, Pierson, Shawn 
shawn.pier...@energytransfer.com wrote:

 **

 I’d work with the DBAs to run sql profiler or something while running
 queries against that table so they could make the argument for you with
 actual statistics rather than hypotheticals.



 Thanks,



 *Shawn Pierson *

 Remedy Developer | Energy Transfer



 *From:* Action Request System discussion list(ARSList) [mailto:
 arslist@ARSLIST.ORG] *On Behalf Of *Rick Cook
 *Sent:* Friday, January 03, 2014 11:58 AM
 *To:* arslist@ARSLIST.ORG
 *Subject:* Multiple level join forms



 **

 We have a custom application that has a TEN layers deep join form.
 Something like
 

Re: Decrypt AR User password

2013-12-30 Thread Charlie Lotridge
Hi James,

You don't need the unencrypted password (and you can't get it anyway).

Instead, obtain the original password from the user and use the
ARVerifyUser (or ARVerifyUser2) API to let Remedy itself perform the
validation.  If it validates (i.e. you don't get an error return), then use
ARSetEntry to update the User record with the new password.

Hope this helps.

Charlie


On Mon, Dec 30, 2013 at 12:51 PM, James Smith
bmcremedyarslis...@gmail.comwrote:

 I want to allow user to change the password from API coding.

 Before updating the new password, user should confirm his old password. To
 achieve this I need to decrypt the password stored in remedy and compare it
 with a password which user entered.

 Ask me if you need more details.


 ___
 UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
 Where the Answers Are, and have been for 20 years


___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Where the Answers Are, and have been for 20 years