Directive Help Blank Title 125850


(system) #1

David,

You were correct, I had a some syntax error for the InfoMsg command. So that is working properly now but while attempting to use an In-Transaction Directive, the UD table is still not getting the value written to the DB.


Here's the current Action code:


define variable msg as character no-undo.

assign msg = ' Starting BPM Logic '.

{lib/PublishInfoMsg.i 

&InfoMsg = msg

&InfoSeverity = {&MESSAGE_INFO}}


FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.

if available ttOrderHed then do:


FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.

if available OrderHed_UD and (OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum) then do:

assign msg = 'Pre-Assign OrderNum = ' + string(ttOrderHed.OrderNum) + ' UD-OrderNum = ' + string(OrderHed_UD.OrderNumber).


{lib/PublishInfoMsg.i 

&InfoMsg = msg

&InfoSeverity = {&MESSAGE_INFO}}


assign OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.


assign msg = 'Post Assign OrderNum = ' + string(ttOrderHed.OrderNum) + ' UD-OrderNum = ' + string(OrderHed_UD.OrderNumber).


{lib/PublishInfoMsg.i 

&InfoMsg = msg

&InfoSeverity = {&MESSAGE_INFO}}

END.

END.

END.

END. 


When the routine runs, the Pre-Post assign values are different and the Post assign values are the same but for some reason the value is not written to the OrderHed_UD table. I have changed the ttOrderHed no-lock to be an exclusive lock but that did not make any difference.


I don't see anything different with my logic compared to other examples posted in this group and EpicWeb.


Anyone have any suggestions?

Tim Lester



---In vantage@yahoogroups.com, <david03350@...> wrote:

Seems to be a syntax issue. It works for me like this:


    define variable message as character no-undo.
    assign message = 'InvoiceBal: ' + string(ttInvcHead.InvoiceBal).
    {lib/PublishInfoMsg.i
    &InfoMsg = message
    &InfoSeverity = {&MESSAGE_INFO}}


or


    {lib/PublishEx.i
    &ExMsg = "'Message text.'"
    &ExType = {&MESSAGE_ERR}}



---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I receive the following error when I add an infomsg command inside my ABL action code.


** Unable to understand after -- "publish". (247)

** Invalid statement. (254)

** D:\Epicor\Epicor Software\Epicor905\Server\lib\publishinfomsg.i Could not understand line 69. (198)



If I place action informational messages before and after my ABL action code, I see both the before and after messages a total of 4 times each.



Here is my actions for the Directive:


show informational message based on the TestMessage template 

and synchronously execute ABL FOR FIRST ttOrderHed exclusive-lock wher ... record nothing

and show informational message based on the EndTestMessage template 



Tim



---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

Have you tried showing a message, for debugging, in your InTransaction directive? To check what point of your abl code is being reached.



---In vantage@yahoogroups.com, <tlester@...> wrote:

I tried using the Conditions as suggested but no change in how they are working. Any other ideas?



---In vantage@yahoogroups.com, <don.n.doan@...> wrote:

 I would think a data directive as a standard would work.  I would put in the two conditions of "there is at least one added row" OR "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.




---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #2
I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #3

 

I would think a data directive as a standard would work.  I would put in the two conditions of "there is at least one added row" OR "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.




---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #4

 I would think a data directive as a standard would work.  I would put in the two conditions of "there is at least one added row" OR "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.




---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #5

 correction --  I would put in the conditions of "there is at least one added row" OR "there is at least one updated row"



---In vantage@yahoogroups.com, <don.n.doan@...> wrote:

 I would think a data directive as a standard would work.  I would put in the conditions of "there is at least one added row" AND "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.



---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #6

I tried using the Conditions as suggested but no change in how they are working. Any other ideas?



---In vantage@yahoogroups.com, <don.n.doan@...> wrote:

 I would think a data directive as a standard would work.  I would put in the two conditions of "there is at least one added row" OR "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.




---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #7

Have you tried showing a message, for debugging, in your InTransaction directive? To check what point of your abl code is being reached.



---In vantage@yahoogroups.com, <tlester@...> wrote:

I tried using the Conditions as suggested but no change in how they are working. Any other ideas?



---In vantage@yahoogroups.com, <don.n.doan@...> wrote:

 I would think a data directive as a standard would work.  I would put in the two conditions of "there is at least one added row" OR "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.




---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #8

I receive the following error when I add an infomsg command inside my ABL action code.


** Unable to understand after -- "publish". (247)

** Invalid statement. (254)

** D:\Epicor\Epicor Software\Epicor905\Server\lib\publishinfomsg.i Could not understand line 69. (198)



If I place action informational messages before and after my ABL action code, I see both the before and after messages a total of 4 times each.



Here is my actions for the Directive:


show informational message based on the TestMessage template 

and synchronously execute ABL FOR FIRST ttOrderHed exclusive-lock wher ... record nothing

and show informational message based on the EndTestMessage template 



Tim



---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

Have you tried showing a message, for debugging, in your InTransaction directive? To check what point of your abl code is being reached.



---In vantage@yahoogroups.com, <tlester@...> wrote:

I tried using the Conditions as suggested but no change in how they are working. Any other ideas?



---In vantage@yahoogroups.com, <don.n.doan@...> wrote:

 I would think a data directive as a standard would work.  I would put in the two conditions of "there is at least one added row" OR "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.




---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester

(system) #9

Seems to be a syntax issue. It works for me like this:


    define variable message as character no-undo.
    assign message = 'InvoiceBal: ' + string(ttInvcHead.InvoiceBal).
    {lib/PublishInfoMsg.i
    &InfoMsg = message
    &InfoSeverity = {&MESSAGE_INFO}}


or


    {lib/PublishEx.i
    &ExMsg = "'Message text.'"
    &ExType = {&MESSAGE_ERR}}



---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I receive the following error when I add an infomsg command inside my ABL action code.


** Unable to understand after -- "publish". (247)

** Invalid statement. (254)

** D:\Epicor\Epicor Software\Epicor905\Server\lib\publishinfomsg.i Could not understand line 69. (198)



If I place action informational messages before and after my ABL action code, I see both the before and after messages a total of 4 times each.



Here is my actions for the Directive:


show informational message based on the TestMessage template 

and synchronously execute ABL FOR FIRST ttOrderHed exclusive-lock wher ... record nothing

and show informational message based on the EndTestMessage template 



Tim



---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

Have you tried showing a message, for debugging, in your InTransaction directive? To check what point of your abl code is being reached.



---In vantage@yahoogroups.com, <tlester@...> wrote:

I tried using the Conditions as suggested but no change in how they are working. Any other ideas?



---In vantage@yahoogroups.com, <don.n.doan@...> wrote:

 I would think a data directive as a standard would work.  I would put in the two conditions of "there is at least one added row" OR "there is at least one updated row".  If the UD row is being created on its own through customization or some other means then you might want to think of flipping that whole script to be set on the UD table and have it searching through the orderhed table.




---In vantage@yahoogroups.com, <vantage@yahoogroups.com> wrote:

I am working on my first Directive, Method and/or Data and I am having some issues hoping someone can help me. We are running 9.05.700c. My testing is based on attempting to solve some challenges and possible solutions using Extended UD tables. For my test, I am attempting to copy data from the parent table (Sales Order Header) to a child table created from Extended UD Tables. When I use a Method Directive or Data Directive In-Transaction Type the code does not do anything. It works when I use a Data Directive Standard Type but this method causes Epicor to stop responding and you have to kill the Epicor session on the client machine - just get an hour glass after the save is initiated. I have enabled and disabled "Prevent Endless Loops" but that has not made any difference.

My concept is to run the code when new records or created or when existing records are modified - I am not using any Conditions for any Directives.

For the Method Directive I am using SalesOrder.GetById - tried both Pre-Processing and Post-Processing. The Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

For the Data Directive Standard, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing with rule"

For the Data Directive In-Transaction, the Action is "synchronously execute ABL FOR EACH ttOrderHed no-lock where ttOrde ... record nothing"

Actual code is:
FOR EACH ttOrderHed no-lock where ttOrderHed.RowMod = 'A' or ttOrderHed.RowMod = 'U'.
if available ttOrderHed then do:
FOR EACH OrderHed_UD where OrderHed_UD.ForeignSysRowID = ttOrderHed.SysRowID exclusive-lock.
if available OrderHed_UD and OrderHed_UD.OrderNumber <> ttOrderHed.OrderNum then do:
ASSIGN OrderHed_UD.OrderNumber = ttOrderHed.OrderNum.
END.
END.
END.
END.


Thanks in advance for any suggestions.
Tim Lester