Raising an Exception for Sales Orders without OrderDtl lines? -

I set the button to become enabled when OrderDtl was initialized/added/changed using the Form Event Wizard.

The only thing I didn't do was set it to become read only again when the clear function is called.

--- In vantage@yahoogroups.com, "c.krusen1" <ckrusen1@...> wrote:
>
> Just out of curiousity, what were the tweaks?
>
> Calvin
>
>
>
> --- In vantage@yahoogroups.com, "Ian" <ianwhardy@> wrote:
> >
> > With a few tweaks, it works beautifully.
> >
> > Thanks for your help guys.
> >
> >
> > --- In vantage@yahoogroups.com, "Ian" <ianwhardy@> wrote:
> > >
> > > Thanks Calvin. I'll give it a shot and Let you know how it goes.
> > >
> > >
> > >
> > > --- In vantage@yahoogroups.com, "c.krusen1" <ckrusen1@> wrote:
> > > >
> > > >
> > > > It's been a while since I did a customization, so the following is just
> > > > an overview.
> > > >
> > > > * Open the customization
> > > > * Add btnSpecial.enabled = FALSE to the forms SalesOrderForm_Load
> > > > function. (Obviously the name of your button probably isn't
> > > > "btnSpecial".)
> > > > * Add btnSpecial.enabled = TRUE to the forms OrderDtl_AfterRowChange
> > > > function. If there isn't a OrderDtl_AfterRowChange function, you'll
> > > > have to create it with the Form Event Wizard.
> > > >
> > > > This basically just makes the form start with the special button
> > > > disabled and then enables it when ever you switch between order lines.
> > > >
> > > > It's far from bullet proof, and has the following limits (and probably
> > > > more):
> > > >
> > > > * It does not disable the button if all order lines have been
> > > > deleted.
> > > > * It also might not enable the button if you order only has one line.
> > > > The work around might be to add a new line, then just delete.
> > > > * The button may stay disabled when opening an existing Order, even
> > > > with multiple lines. The work around might be to jump to a different
> > > > order line, or use the above mentioned add/delete.
> > > >
> > > > Obviously a robust implementation would check for existing lines (when
> > > > opening, adding lines, or deleting lines), and set the button's enabled
> > > > property accordingly.
> > > >
> > > > And for heavens sake, make a backup of the customization before you
> > > > start messing with it. I've learned the hard way.
> > > >
> > > > Calvin
> > > >
> > > >
> > > > --- In vantage@yahoogroups.com, "Ian" <ianwhardy@> wrote:
> > > > >
> > > > > Good idea, how would I go about this?
> > > > >
> > > > > --- In vantage@yahoogroups.com, "c.krusen1" ckrusen1@ wrote:
> > > > > >
> > > > > > Would it be easier to have the custom buttom disabled, and then only
> > > > enable it after a Order Line has been created?
> > > > > >
> > > > > > Calvin
> > > > > >
> > > > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > > > >
> > > > > > > If I'm following you right, you just want to check for the
> > > > existence of
> > > > > > > lines when a button is clicked. That is much easier.
> > > > > > > All you really need to do is add the button to the form and create
> > > > on 'on
> > > > > > > click' event using the wizard. (I'm assuming your familiar with
> > > > this
> > > > > > > process, if not let me know.)
> > > > > > >
> > > > > > > The code that goes behind the button should look something like
> > > > this:
> > > > > > >
> > > > > > > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > > > > > > csm.TransAdaptersHT["oTrans_adapter"];if
> > > > > > > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > > > > > > {
> > > > > > > // Oh no! We don't have any lines! // Let's do some stuff!}
> > > > > > >
> > > > > > > That basically just gets an instance of the order adapter and then
> > > > > > > looks to see how many rows there are.
> > > > > > >
> > > > > > >
> > > > > > > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@> wrote:
> > > > > > >
> > > > > > > > **
> > > > > > > >
> > > > > > > >
> > > > > > > > I thought that too. However, I have slightly changed what I want
> > > > to do, and
> > > > > > > > I want it to fire when the user clicks on a custom button.
> > > > > > > >
> > > > > > > > Would you have an idea where I should start?
> > > > > > > >
> > > > > > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > > > > > >
> > > > > > > > > You will likely need to write some code on the screen.
> > > > Something that
> > > > > > > > fires
> > > > > > > > > when the user tries to close the order or the form.
> > > > > > > > > What you're doing is a bit trickier than you might expect as
> > > > Epicor
> > > > > > > > requires
> > > > > > > > > that an order be saved before lines can be added.
> > > > > > > > >
> > > > > > > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > > > > > > >
> > > > > > > > > > **
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Morning All,
> > > > > > > > > >
> > > > > > > > > > I am trying to raise an exception on sales orders when the
> > > > user hasn't
> > > > > > > > > > entered a sales order line before they save.
> > > > > > > > > >
> > > > > > > > > > Can this be done via a BPM, or will it be coding?
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > *Waffqle Driggers*
> > > > > > > > > *High End Dev, System Design, Profit Drinking
> > > > > > > > > *
> > > > > > > > > *:: 904.962.2887*
> > > > > > > > > *:: waffqle@*
> > > > > > > > > *:: NO FAXES*
> > > > > > > > >
> > > > > > > > > *
> > > > > > > > >
> > > > > > > > > *
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > [Non-text portions of this message have been removed]
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > *Waffqle Driggers*
> > > > > > > *High End Dev, System Design, Profit Drinking
> > > > > > > *
> > > > > > > *:: 904.962.2887*
> > > > > > > *:: waffqle@*
> > > > > > > *:: NO FAXES*
> > > > > > >
> > > > > > > *
> > > > > > >
> > > > > > > *
> > > > > > >
> > > > > > >
> > > > > > > [Non-text portions of this message have been removed]
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> > > >
> > >
> >
>
Morning All,

I am trying to raise an exception on sales orders when the user hasn't entered a sales order line before they save.

Can this be done via a BPM, or will it be coding?
You will likely need to write some code on the screen. Something that fires
when the user tries to close the order or the form.
What you're doing is a bit trickier than you might expect as Epicor requires
that an order be saved before lines can be added.

On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@...> wrote:

> **
>
>
> Morning All,
>
> I am trying to raise an exception on sales orders when the user hasn't
> entered a sales order line before they save.
>
> Can this be done via a BPM, or will it be coding?
>
>
>



--
*Waffqle Driggers*
*High End Dev, System Design, Profit Drinking
*
*:: 904.962.2887*
*:: waffqle@...*
*:: NO FAXES*

*

*


[Non-text portions of this message have been removed]
I thought that too. However, I have slightly changed what I want to do, and I want it to fire when the user clicks on a custom button.

Would you have an idea where I should start?


--- In vantage@yahoogroups.com, Waffqle <waffqle@...> wrote:
>
> You will likely need to write some code on the screen. Something that fires
> when the user tries to close the order or the form.
> What you're doing is a bit trickier than you might expect as Epicor requires
> that an order be saved before lines can be added.
>
> On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@...> wrote:
>
> > **
> >
> >
> > Morning All,
> >
> > I am trying to raise an exception on sales orders when the user hasn't
> > entered a sales order line before they save.
> >
> > Can this be done via a BPM, or will it be coding?
> >
> >
> >
>
>
>
> --
> *Waffqle Driggers*
> *High End Dev, System Design, Profit Drinking
> *
> *:: 904.962.2887*
> *:: waffqle@...*
> *:: NO FAXES*
>
> *
>
> *
>
>
> [Non-text portions of this message have been removed]
>
I've actually done something similar for a client of mine. Yes, agreed that
you have to write this in the UI, it's the only place it can go. However,
there are a lot of "exits" you need to cover. Not just closing the form,
but you also need to capture when they are trying to click the new icon to
create a new order, when they click the clear button, the search button,
etc. It can be done, but it's not too pretty.

Kevin Simon
SimsTrak Consulting

-----Original Message-----
From: vantage@yahoogroups.com [mailto:vantage@yahoogroups.com] On Behalf Of
Waffqle
Sent: Thursday, August 25, 2011 8:26 AM
To: vantage@yahoogroups.com
Subject: Re: [Vantage] Raising an Exception for Sales ORders without
OrderDtl lines?

You will likely need to write some code on the screen. Something that fires
when the user tries to close the order or the form.
What you're doing is a bit trickier than you might expect as Epicor requires
that an order be saved before lines can be added.

On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@...> wrote:

> **
>
>
> Morning All,
>
> I am trying to raise an exception on sales orders when the user hasn't
> entered a sales order line before they save.
>
> Can this be done via a BPM, or will it be coding?
>
>
>



--
*Waffqle Driggers*
*High End Dev, System Design, Profit Drinking
*
*:: 904.962.2887*
*:: waffqle@...*
*:: NO FAXES*

*

*


[Non-text portions of this message have been removed]



------------------------------------

Useful links for the Yahoo!Groups Vantage Board are: ( Note: You must have
already linked your email address to a yahoo id to enable access. )
(1) To access the Files Section of our Yahoo!Group for Report Builder and
Crystal Reports and other 'goodies', please goto:
http://groups.yahoo.com/group/vantage/files/.
(2) To search through old msg's goto:
http://groups.yahoo.com/group/vantage/messages
(3) To view links to Vendors that provide Vantage services goto:
http://groups.yahoo.com/group/vantage/linksYahoo! Groups Links
If I'm following you right, you just want to check for the existence of
lines when a button is clicked. That is much easier.
All you really need to do is add the button to the form and create on 'on
click' event using the wizard. (I'm assuming your familiar with this
process, if not let me know.)

The code that goes behind the button should look something like this:

SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
csm.TransAdaptersHT["oTrans_adapter"];if
(salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
{
// Oh no! We don't have any lines! // Let's do some stuff!}

That basically just gets an instance of the order adapter and then
looks to see how many rows there are.


On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@...> wrote:

> **
>
>
> I thought that too. However, I have slightly changed what I want to do, and
> I want it to fire when the user clicks on a custom button.
>
> Would you have an idea where I should start?
>
> --- In vantage@yahoogroups.com, Waffqle <waffqle@...> wrote:
> >
> > You will likely need to write some code on the screen. Something that
> fires
> > when the user tries to close the order or the form.
> > What you're doing is a bit trickier than you might expect as Epicor
> requires
> > that an order be saved before lines can be added.
> >
> > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@...> wrote:
> >
> > > **
> > >
> > >
> > > Morning All,
> > >
> > > I am trying to raise an exception on sales orders when the user hasn't
> > > entered a sales order line before they save.
> > >
> > > Can this be done via a BPM, or will it be coding?
> > >
> > >
> > >
> >
> >
> >
> > --
> > *Waffqle Driggers*
> > *High End Dev, System Design, Profit Drinking
> > *
> > *:: 904.962.2887*
> > *:: waffqle@...*
> > *:: NO FAXES*
> >
> > *
> >
> > *
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>
>



--
*Waffqle Driggers*
*High End Dev, System Design, Profit Drinking
*
*:: 904.962.2887*
*:: waffqle@...*
*:: NO FAXES*

*

*


[Non-text portions of this message have been removed]
Thanks mate.

Is that C# code? i have already added some code in VB. I have added the following:

Dim SalesOrderAdapter As SalesOrderAdapter = New SalesOrderAdapter(SalesOrderForm)
SalesOrderAdapter.BOConnect()
Dim OrderCount As Int32 = SalesOrderAdapter.SalesOrderData.OrderDtl.Count
if (OrderCount < 1) then
messagebox.show("Error. There aren't any order lines to check if a quote exists" + vbCrLf + "Please add a SO line and try again.")
Else

However, I am still getting a index out of range exception. Any hints on where I'm going wrong?

--- In vantage@yahoogroups.com, Waffqle <waffqle@...> wrote:
>
> If I'm following you right, you just want to check for the existence of
> lines when a button is clicked. That is much easier.
> All you really need to do is add the button to the form and create on 'on
> click' event using the wizard. (I'm assuming your familiar with this
> process, if not let me know.)
>
> The code that goes behind the button should look something like this:
>
> SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> csm.TransAdaptersHT["oTrans_adapter"];if
> (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> {
> // Oh no! We don't have any lines! // Let's do some stuff!}
>
> That basically just gets an instance of the order adapter and then
> looks to see how many rows there are.
>
>
> On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@...> wrote:
>
> > **
> >
> >
> > I thought that too. However, I have slightly changed what I want to do, and
> > I want it to fire when the user clicks on a custom button.
> >
> > Would you have an idea where I should start?
> >
> > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > >
> > > You will likely need to write some code on the screen. Something that
> > fires
> > > when the user tries to close the order or the form.
> > > What you're doing is a bit trickier than you might expect as Epicor
> > requires
> > > that an order be saved before lines can be added.
> > >
> > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > >
> > > > **
> > > >
> > > >
> > > > Morning All,
> > > >
> > > > I am trying to raise an exception on sales orders when the user hasn't
> > > > entered a sales order line before they save.
> > > >
> > > > Can this be done via a BPM, or will it be coding?
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Waffqle Driggers*
> > > *High End Dev, System Design, Profit Drinking
> > > *
> > > *:: 904.962.2887*
> > > *:: waffqle@*
> > > *:: NO FAXES*
> > >
> > > *
> > >
> > > *
> > >
> > >
> > > [Non-text portions of this message have been removed]
> > >
> >
> >
> >
>
>
>
> --
> *Waffqle Driggers*
> *High End Dev, System Design, Profit Drinking
> *
> *:: 904.962.2887*
> *:: waffqle@...*
> *:: NO FAXES*
>
> *
>
> *
>
>
> [Non-text portions of this message have been removed]
>
Hmm, where/when is your code running? Is there a record loaded on the
screen?

On Thu, Aug 25, 2011 at 10:25 AM, Ian <ianwhardy@...> wrote:

> **
>
>
> Thanks mate.
>
> Is that C# code? i have already added some code in VB. I have added the
> following:
>
> Dim SalesOrderAdapter As SalesOrderAdapter = New
> SalesOrderAdapter(SalesOrderForm)
> SalesOrderAdapter.BOConnect()
> Dim OrderCount As Int32 = SalesOrderAdapter.SalesOrderData.OrderDtl.Count
> if (OrderCount < 1) then
> messagebox.show("Error. There aren't any order lines to check if a quote
> exists" + vbCrLf + "Please add a SO line and try again.")
> Else
>
> However, I am still getting a index out of range exception. Any hints on
> where I'm going wrong?
>
>
> --- In vantage@yahoogroups.com, Waffqle <waffqle@...> wrote:
> >
> > If I'm following you right, you just want to check for the existence of
> > lines when a button is clicked. That is much easier.
> > All you really need to do is add the button to the form and create on 'on
> > click' event using the wizard. (I'm assuming your familiar with this
> > process, if not let me know.)
> >
> > The code that goes behind the button should look something like this:
> >
> > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > csm.TransAdaptersHT["oTrans_adapter"];if
> > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > {
> > // Oh no! We don't have any lines! // Let's do some stuff!}
> >
> > That basically just gets an instance of the order adapter and then
> > looks to see how many rows there are.
> >
> >
> > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@...> wrote:
> >
> > > **
> > >
> > >
> > > I thought that too. However, I have slightly changed what I want to do,
> and
> > > I want it to fire when the user clicks on a custom button.
> > >
> > > Would you have an idea where I should start?
> > >
> > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > >
> > > > You will likely need to write some code on the screen. Something that
> > > fires
> > > > when the user tries to close the order or the form.
> > > > What you're doing is a bit trickier than you might expect as Epicor
> > > requires
> > > > that an order be saved before lines can be added.
> > > >
> > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > >
> > > > > **
> > > > >
> > > > >
> > > > > Morning All,
> > > > >
> > > > > I am trying to raise an exception on sales orders when the user
> hasn't
> > > > > entered a sales order line before they save.
> > > > >
> > > > > Can this be done via a BPM, or will it be coding?
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > *Waffqle Driggers*
> > > > *High End Dev, System Design, Profit Drinking
> > > > *
> > > > *:: 904.962.2887*
> > > > *:: waffqle@*
> > > > *:: NO FAXES*
> > > >
> > > > *
> > > >
> > > > *
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> > > >
> > >
> > >
> > >
> >
> >
> >
> > --
> > *Waffqle Driggers*
> > *High End Dev, System Design, Profit Drinking
> > *
> > *:: 904.962.2887*
> > *:: waffqle@...*
> > *:: NO FAXES*
> >
> > *
> >
> > *
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
>
>



--
*Waffqle Driggers*
*High End Dev, System Design, Profit Drinking
*
*:: 904.962.2887*
*:: waffqle@...*
*:: NO FAXES*

*

*


[Non-text portions of this message have been removed]
Would it be easier to have the custom buttom disabled, and then only enable it after a Order Line has been created?

Calvin

--- In vantage@yahoogroups.com, Waffqle <waffqle@...> wrote:
>
> If I'm following you right, you just want to check for the existence of
> lines when a button is clicked. That is much easier.
> All you really need to do is add the button to the form and create on 'on
> click' event using the wizard. (I'm assuming your familiar with this
> process, if not let me know.)
>
> The code that goes behind the button should look something like this:
>
> SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> csm.TransAdaptersHT["oTrans_adapter"];if
> (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> {
> // Oh no! We don't have any lines! // Let's do some stuff!}
>
> That basically just gets an instance of the order adapter and then
> looks to see how many rows there are.
>
>
> On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@...> wrote:
>
> > **
> >
> >
> > I thought that too. However, I have slightly changed what I want to do, and
> > I want it to fire when the user clicks on a custom button.
> >
> > Would you have an idea where I should start?
> >
> > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > >
> > > You will likely need to write some code on the screen. Something that
> > fires
> > > when the user tries to close the order or the form.
> > > What you're doing is a bit trickier than you might expect as Epicor
> > requires
> > > that an order be saved before lines can be added.
> > >
> > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > >
> > > > **
> > > >
> > > >
> > > > Morning All,
> > > >
> > > > I am trying to raise an exception on sales orders when the user hasn't
> > > > entered a sales order line before they save.
> > > >
> > > > Can this be done via a BPM, or will it be coding?
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Waffqle Driggers*
> > > *High End Dev, System Design, Profit Drinking
> > > *
> > > *:: 904.962.2887*
> > > *:: waffqle@*
> > > *:: NO FAXES*
> > >
> > > *
> > >
> > > *
> > >
> > >
> > > [Non-text portions of this message have been removed]
> > >
> >
> >
> >
>
>
>
> --
> *Waffqle Driggers*
> *High End Dev, System Design, Profit Drinking
> *
> *:: 904.962.2887*
> *:: waffqle@...*
> *:: NO FAXES*
>
> *
>
> *
>
>
> [Non-text portions of this message have been removed]
>
There is a sales order number loaded, but not with an order line in it. If the sales order has a line, the rest of the code works.



--- In vantage@yahoogroups.com, Waffqle <waffqle@...> wrote:
>
> Hmm, where/when is your code running? Is there a record loaded on the
> screen?
>
> On Thu, Aug 25, 2011 at 10:25 AM, Ian <ianwhardy@...> wrote:
>
> > **
> >
> >
> > Thanks mate.
> >
> > Is that C# code? i have already added some code in VB. I have added the
> > following:
> >
> > Dim SalesOrderAdapter As SalesOrderAdapter = New
> > SalesOrderAdapter(SalesOrderForm)
> > SalesOrderAdapter.BOConnect()
> > Dim OrderCount As Int32 = SalesOrderAdapter.SalesOrderData.OrderDtl.Count
> > if (OrderCount < 1) then
> > messagebox.show("Error. There aren't any order lines to check if a quote
> > exists" + vbCrLf + "Please add a SO line and try again.")
> > Else
> >
> > However, I am still getting a index out of range exception. Any hints on
> > where I'm going wrong?
> >
> >
> > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > >
> > > If I'm following you right, you just want to check for the existence of
> > > lines when a button is clicked. That is much easier.
> > > All you really need to do is add the button to the form and create on 'on
> > > click' event using the wizard. (I'm assuming your familiar with this
> > > process, if not let me know.)
> > >
> > > The code that goes behind the button should look something like this:
> > >
> > > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > > csm.TransAdaptersHT["oTrans_adapter"];if
> > > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > > {
> > > // Oh no! We don't have any lines! // Let's do some stuff!}
> > >
> > > That basically just gets an instance of the order adapter and then
> > > looks to see how many rows there are.
> > >
> > >
> > > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@> wrote:
> > >
> > > > **
> > > >
> > > >
> > > > I thought that too. However, I have slightly changed what I want to do,
> > and
> > > > I want it to fire when the user clicks on a custom button.
> > > >
> > > > Would you have an idea where I should start?
> > > >
> > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > >
> > > > > You will likely need to write some code on the screen. Something that
> > > > fires
> > > > > when the user tries to close the order or the form.
> > > > > What you're doing is a bit trickier than you might expect as Epicor
> > > > requires
> > > > > that an order be saved before lines can be added.
> > > > >
> > > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > > >
> > > > > > **
> > > > > >
> > > > > >
> > > > > > Morning All,
> > > > > >
> > > > > > I am trying to raise an exception on sales orders when the user
> > hasn't
> > > > > > entered a sales order line before they save.
> > > > > >
> > > > > > Can this be done via a BPM, or will it be coding?
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Waffqle Driggers*
> > > > > *High End Dev, System Design, Profit Drinking
> > > > > *
> > > > > *:: 904.962.2887*
> > > > > *:: waffqle@*
> > > > > *:: NO FAXES*
> > > > >
> > > > > *
> > > > >
> > > > > *
> > > > >
> > > > >
> > > > > [Non-text portions of this message have been removed]
> > > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Waffqle Driggers*
> > > *High End Dev, System Design, Profit Drinking
> > > *
> > > *:: 904.962.2887*
> > > *:: waffqle@*
> > > *:: NO FAXES*
> > >
> > > *
> > >
> > > *
> > >
> > >
> > > [Non-text portions of this message have been removed]
> > >
> >
> >
> >
>
>
>
> --
> *Waffqle Driggers*
> *High End Dev, System Design, Profit Drinking
> *
> *:: 904.962.2887*
> *:: waffqle@...*
> *:: NO FAXES*
>
> *
>
> *
>
>
> [Non-text portions of this message have been removed]
>
Good idea, how would I go about this?

--- In vantage@yahoogroups.com, "c.krusen1" <ckrusen1@...> wrote:
>
> Would it be easier to have the custom buttom disabled, and then only enable it after a Order Line has been created?
>
> Calvin
>
> --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> >
> > If I'm following you right, you just want to check for the existence of
> > lines when a button is clicked. That is much easier.
> > All you really need to do is add the button to the form and create on 'on
> > click' event using the wizard. (I'm assuming your familiar with this
> > process, if not let me know.)
> >
> > The code that goes behind the button should look something like this:
> >
> > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > csm.TransAdaptersHT["oTrans_adapter"];if
> > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > {
> > // Oh no! We don't have any lines! // Let's do some stuff!}
> >
> > That basically just gets an instance of the order adapter and then
> > looks to see how many rows there are.
> >
> >
> > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@> wrote:
> >
> > > **
> > >
> > >
> > > I thought that too. However, I have slightly changed what I want to do, and
> > > I want it to fire when the user clicks on a custom button.
> > >
> > > Would you have an idea where I should start?
> > >
> > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > >
> > > > You will likely need to write some code on the screen. Something that
> > > fires
> > > > when the user tries to close the order or the form.
> > > > What you're doing is a bit trickier than you might expect as Epicor
> > > requires
> > > > that an order be saved before lines can be added.
> > > >
> > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > >
> > > > > **
> > > > >
> > > > >
> > > > > Morning All,
> > > > >
> > > > > I am trying to raise an exception on sales orders when the user hasn't
> > > > > entered a sales order line before they save.
> > > > >
> > > > > Can this be done via a BPM, or will it be coding?
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > *Waffqle Driggers*
> > > > *High End Dev, System Design, Profit Drinking
> > > > *
> > > > *:: 904.962.2887*
> > > > *:: waffqle@*
> > > > *:: NO FAXES*
> > > >
> > > > *
> > > >
> > > > *
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> > > >
> > >
> > >
> > >
> >
> >
> >
> > --
> > *Waffqle Driggers*
> > *High End Dev, System Design, Profit Drinking
> > *
> > *:: 904.962.2887*
> > *:: waffqle@*
> > *:: NO FAXES*
> >
> > *
> >
> > *
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
It's been a while since I did a customization, so the following is just
an overview.

* Open the customization
* Add btnSpecial.enabled = FALSE to the forms SalesOrderForm_Load
function. (Obviously the name of your button probably isn't
"btnSpecial".)
* Add btnSpecial.enabled = TRUE to the forms OrderDtl_AfterRowChange
function. If there isn't a OrderDtl_AfterRowChange function, you'll
have to create it with the Form Event Wizard.

This basically just makes the form start with the special button
disabled and then enables it when ever you switch between order lines.

It's far from bullet proof, and has the following limits (and probably
more):

* It does not disable the button if all order lines have been
deleted.
* It also might not enable the button if you order only has one line.
The work around might be to add a new line, then just delete.
* The button may stay disabled when opening an existing Order, even
with multiple lines. The work around might be to jump to a different
order line, or use the above mentioned add/delete.

Obviously a robust implementation would check for existing lines (when
opening, adding lines, or deleting lines), and set the button's enabled
property accordingly.

And for heavens sake, make a backup of the customization before you
start messing with it. I've learned the hard way.

Calvin


--- In vantage@yahoogroups.com, "Ian" <ianwhardy@...> wrote:
>
> Good idea, how would I go about this?
>
> --- In vantage@yahoogroups.com, "c.krusen1" ckrusen1@ wrote:
> >
> > Would it be easier to have the custom buttom disabled, and then only
enable it after a Order Line has been created?
> >
> > Calvin
> >
> > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > >
> > > If I'm following you right, you just want to check for the
existence of
> > > lines when a button is clicked. That is much easier.
> > > All you really need to do is add the button to the form and create
on 'on
> > > click' event using the wizard. (I'm assuming your familiar with
this
> > > process, if not let me know.)
> > >
> > > The code that goes behind the button should look something like
this:
> > >
> > > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > > csm.TransAdaptersHT["oTrans_adapter"];if
> > > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > > {
> > > // Oh no! We don't have any lines! // Let's do some stuff!}
> > >
> > > That basically just gets an instance of the order adapter and then
> > > looks to see how many rows there are.
> > >
> > >
> > > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@> wrote:
> > >
> > > > **
> > > >
> > > >
> > > > I thought that too. However, I have slightly changed what I want
to do, and
> > > > I want it to fire when the user clicks on a custom button.
> > > >
> > > > Would you have an idea where I should start?
> > > >
> > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > >
> > > > > You will likely need to write some code on the screen.
Something that
> > > > fires
> > > > > when the user tries to close the order or the form.
> > > > > What you're doing is a bit trickier than you might expect as
Epicor
> > > > requires
> > > > > that an order be saved before lines can be added.
> > > > >
> > > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > > >
> > > > > > **
> > > > > >
> > > > > >
> > > > > > Morning All,
> > > > > >
> > > > > > I am trying to raise an exception on sales orders when the
user hasn't
> > > > > > entered a sales order line before they save.
> > > > > >
> > > > > > Can this be done via a BPM, or will it be coding?
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Waffqle Driggers*
> > > > > *High End Dev, System Design, Profit Drinking
> > > > > *
> > > > > *:: 904.962.2887*
> > > > > *:: waffqle@*
> > > > > *:: NO FAXES*
> > > > >
> > > > > *
> > > > >
> > > > > *
> > > > >
> > > > >
> > > > > [Non-text portions of this message have been removed]
> > > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Waffqle Driggers*
> > > *High End Dev, System Design, Profit Drinking
> > > *
> > > *:: 904.962.2887*
> > > *:: waffqle@*
> > > *:: NO FAXES*
> > >
> > > *
> > >
> > > *
> > >
> > >
> > > [Non-text portions of this message have been removed]
> > >
> >
>




[Non-text portions of this message have been removed]
Thanks Calvin. I'll give it a shot and Let you know how it goes.



--- In vantage@yahoogroups.com, "c.krusen1" <ckrusen1@...> wrote:
>
>
> It's been a while since I did a customization, so the following is just
> an overview.
>
> * Open the customization
> * Add btnSpecial.enabled = FALSE to the forms SalesOrderForm_Load
> function. (Obviously the name of your button probably isn't
> "btnSpecial".)
> * Add btnSpecial.enabled = TRUE to the forms OrderDtl_AfterRowChange
> function. If there isn't a OrderDtl_AfterRowChange function, you'll
> have to create it with the Form Event Wizard.
>
> This basically just makes the form start with the special button
> disabled and then enables it when ever you switch between order lines.
>
> It's far from bullet proof, and has the following limits (and probably
> more):
>
> * It does not disable the button if all order lines have been
> deleted.
> * It also might not enable the button if you order only has one line.
> The work around might be to add a new line, then just delete.
> * The button may stay disabled when opening an existing Order, even
> with multiple lines. The work around might be to jump to a different
> order line, or use the above mentioned add/delete.
>
> Obviously a robust implementation would check for existing lines (when
> opening, adding lines, or deleting lines), and set the button's enabled
> property accordingly.
>
> And for heavens sake, make a backup of the customization before you
> start messing with it. I've learned the hard way.
>
> Calvin
>
>
> --- In vantage@yahoogroups.com, "Ian" <ianwhardy@> wrote:
> >
> > Good idea, how would I go about this?
> >
> > --- In vantage@yahoogroups.com, "c.krusen1" ckrusen1@ wrote:
> > >
> > > Would it be easier to have the custom buttom disabled, and then only
> enable it after a Order Line has been created?
> > >
> > > Calvin
> > >
> > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > >
> > > > If I'm following you right, you just want to check for the
> existence of
> > > > lines when a button is clicked. That is much easier.
> > > > All you really need to do is add the button to the form and create
> on 'on
> > > > click' event using the wizard. (I'm assuming your familiar with
> this
> > > > process, if not let me know.)
> > > >
> > > > The code that goes behind the button should look something like
> this:
> > > >
> > > > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > > > csm.TransAdaptersHT["oTrans_adapter"];if
> > > > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > > > {
> > > > // Oh no! We don't have any lines! // Let's do some stuff!}
> > > >
> > > > That basically just gets an instance of the order adapter and then
> > > > looks to see how many rows there are.
> > > >
> > > >
> > > > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@> wrote:
> > > >
> > > > > **
> > > > >
> > > > >
> > > > > I thought that too. However, I have slightly changed what I want
> to do, and
> > > > > I want it to fire when the user clicks on a custom button.
> > > > >
> > > > > Would you have an idea where I should start?
> > > > >
> > > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > > >
> > > > > > You will likely need to write some code on the screen.
> Something that
> > > > > fires
> > > > > > when the user tries to close the order or the form.
> > > > > > What you're doing is a bit trickier than you might expect as
> Epicor
> > > > > requires
> > > > > > that an order be saved before lines can be added.
> > > > > >
> > > > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > > > >
> > > > > > > **
> > > > > > >
> > > > > > >
> > > > > > > Morning All,
> > > > > > >
> > > > > > > I am trying to raise an exception on sales orders when the
> user hasn't
> > > > > > > entered a sales order line before they save.
> > > > > > >
> > > > > > > Can this be done via a BPM, or will it be coding?
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > *Waffqle Driggers*
> > > > > > *High End Dev, System Design, Profit Drinking
> > > > > > *
> > > > > > *:: 904.962.2887*
> > > > > > *:: waffqle@*
> > > > > > *:: NO FAXES*
> > > > > >
> > > > > > *
> > > > > >
> > > > > > *
> > > > > >
> > > > > >
> > > > > > [Non-text portions of this message have been removed]
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > *Waffqle Driggers*
> > > > *High End Dev, System Design, Profit Drinking
> > > > *
> > > > *:: 904.962.2887*
> > > > *:: waffqle@*
> > > > *:: NO FAXES*
> > > >
> > > > *
> > > >
> > > > *
> > > >
> > > >
> > > > [Non-text portions of this message have been removed]
> > > >
> > >
> >
>
>
>
>
> [Non-text portions of this message have been removed]
>
With a few tweaks, it works beautifully.

Thanks for your help guys.


--- In vantage@yahoogroups.com, "Ian" <ianwhardy@...> wrote:
>
> Thanks Calvin. I'll give it a shot and Let you know how it goes.
>
>
>
> --- In vantage@yahoogroups.com, "c.krusen1" <ckrusen1@> wrote:
> >
> >
> > It's been a while since I did a customization, so the following is just
> > an overview.
> >
> > * Open the customization
> > * Add btnSpecial.enabled = FALSE to the forms SalesOrderForm_Load
> > function. (Obviously the name of your button probably isn't
> > "btnSpecial".)
> > * Add btnSpecial.enabled = TRUE to the forms OrderDtl_AfterRowChange
> > function. If there isn't a OrderDtl_AfterRowChange function, you'll
> > have to create it with the Form Event Wizard.
> >
> > This basically just makes the form start with the special button
> > disabled and then enables it when ever you switch between order lines.
> >
> > It's far from bullet proof, and has the following limits (and probably
> > more):
> >
> > * It does not disable the button if all order lines have been
> > deleted.
> > * It also might not enable the button if you order only has one line.
> > The work around might be to add a new line, then just delete.
> > * The button may stay disabled when opening an existing Order, even
> > with multiple lines. The work around might be to jump to a different
> > order line, or use the above mentioned add/delete.
> >
> > Obviously a robust implementation would check for existing lines (when
> > opening, adding lines, or deleting lines), and set the button's enabled
> > property accordingly.
> >
> > And for heavens sake, make a backup of the customization before you
> > start messing with it. I've learned the hard way.
> >
> > Calvin
> >
> >
> > --- In vantage@yahoogroups.com, "Ian" <ianwhardy@> wrote:
> > >
> > > Good idea, how would I go about this?
> > >
> > > --- In vantage@yahoogroups.com, "c.krusen1" ckrusen1@ wrote:
> > > >
> > > > Would it be easier to have the custom buttom disabled, and then only
> > enable it after a Order Line has been created?
> > > >
> > > > Calvin
> > > >
> > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > >
> > > > > If I'm following you right, you just want to check for the
> > existence of
> > > > > lines when a button is clicked. That is much easier.
> > > > > All you really need to do is add the button to the form and create
> > on 'on
> > > > > click' event using the wizard. (I'm assuming your familiar with
> > this
> > > > > process, if not let me know.)
> > > > >
> > > > > The code that goes behind the button should look something like
> > this:
> > > > >
> > > > > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > > > > csm.TransAdaptersHT["oTrans_adapter"];if
> > > > > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > > > > {
> > > > > // Oh no! We don't have any lines! // Let's do some stuff!}
> > > > >
> > > > > That basically just gets an instance of the order adapter and then
> > > > > looks to see how many rows there are.
> > > > >
> > > > >
> > > > > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@> wrote:
> > > > >
> > > > > > **
> > > > > >
> > > > > >
> > > > > > I thought that too. However, I have slightly changed what I want
> > to do, and
> > > > > > I want it to fire when the user clicks on a custom button.
> > > > > >
> > > > > > Would you have an idea where I should start?
> > > > > >
> > > > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > > > >
> > > > > > > You will likely need to write some code on the screen.
> > Something that
> > > > > > fires
> > > > > > > when the user tries to close the order or the form.
> > > > > > > What you're doing is a bit trickier than you might expect as
> > Epicor
> > > > > > requires
> > > > > > > that an order be saved before lines can be added.
> > > > > > >
> > > > > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > > > > >
> > > > > > > > **
> > > > > > > >
> > > > > > > >
> > > > > > > > Morning All,
> > > > > > > >
> > > > > > > > I am trying to raise an exception on sales orders when the
> > user hasn't
> > > > > > > > entered a sales order line before they save.
> > > > > > > >
> > > > > > > > Can this be done via a BPM, or will it be coding?
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > *Waffqle Driggers*
> > > > > > > *High End Dev, System Design, Profit Drinking
> > > > > > > *
> > > > > > > *:: 904.962.2887*
> > > > > > > *:: waffqle@*
> > > > > > > *:: NO FAXES*
> > > > > > >
> > > > > > > *
> > > > > > >
> > > > > > > *
> > > > > > >
> > > > > > >
> > > > > > > [Non-text portions of this message have been removed]
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Waffqle Driggers*
> > > > > *High End Dev, System Design, Profit Drinking
> > > > > *
> > > > > *:: 904.962.2887*
> > > > > *:: waffqle@*
> > > > > *:: NO FAXES*
> > > > >
> > > > > *
> > > > >
> > > > > *
> > > > >
> > > > >
> > > > > [Non-text portions of this message have been removed]
> > > > >
> > > >
> > >
> >
> >
> >
> >
> > [Non-text portions of this message have been removed]
> >
>
Just out of curiousity, what were the tweaks?

Calvin



--- In vantage@yahoogroups.com, "Ian" <ianwhardy@...> wrote:
>
> With a few tweaks, it works beautifully.
>
> Thanks for your help guys.
>
>
> --- In vantage@yahoogroups.com, "Ian" <ianwhardy@> wrote:
> >
> > Thanks Calvin. I'll give it a shot and Let you know how it goes.
> >
> >
> >
> > --- In vantage@yahoogroups.com, "c.krusen1" <ckrusen1@> wrote:
> > >
> > >
> > > It's been a while since I did a customization, so the following is just
> > > an overview.
> > >
> > > * Open the customization
> > > * Add btnSpecial.enabled = FALSE to the forms SalesOrderForm_Load
> > > function. (Obviously the name of your button probably isn't
> > > "btnSpecial".)
> > > * Add btnSpecial.enabled = TRUE to the forms OrderDtl_AfterRowChange
> > > function. If there isn't a OrderDtl_AfterRowChange function, you'll
> > > have to create it with the Form Event Wizard.
> > >
> > > This basically just makes the form start with the special button
> > > disabled and then enables it when ever you switch between order lines.
> > >
> > > It's far from bullet proof, and has the following limits (and probably
> > > more):
> > >
> > > * It does not disable the button if all order lines have been
> > > deleted.
> > > * It also might not enable the button if you order only has one line.
> > > The work around might be to add a new line, then just delete.
> > > * The button may stay disabled when opening an existing Order, even
> > > with multiple lines. The work around might be to jump to a different
> > > order line, or use the above mentioned add/delete.
> > >
> > > Obviously a robust implementation would check for existing lines (when
> > > opening, adding lines, or deleting lines), and set the button's enabled
> > > property accordingly.
> > >
> > > And for heavens sake, make a backup of the customization before you
> > > start messing with it. I've learned the hard way.
> > >
> > > Calvin
> > >
> > >
> > > --- In vantage@yahoogroups.com, "Ian" <ianwhardy@> wrote:
> > > >
> > > > Good idea, how would I go about this?
> > > >
> > > > --- In vantage@yahoogroups.com, "c.krusen1" ckrusen1@ wrote:
> > > > >
> > > > > Would it be easier to have the custom buttom disabled, and then only
> > > enable it after a Order Line has been created?
> > > > >
> > > > > Calvin
> > > > >
> > > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > > >
> > > > > > If I'm following you right, you just want to check for the
> > > existence of
> > > > > > lines when a button is clicked. That is much easier.
> > > > > > All you really need to do is add the button to the form and create
> > > on 'on
> > > > > > click' event using the wizard. (I'm assuming your familiar with
> > > this
> > > > > > process, if not let me know.)
> > > > > >
> > > > > > The code that goes behind the button should look something like
> > > this:
> > > > > >
> > > > > > SalesOrderAdapter salesOrderAdapter = (SalesOrderAdapter)
> > > > > > csm.TransAdaptersHT["oTrans_adapter"];if
> > > > > > (salesOrderAdapter.salesOrderData.OrderDtl.Count < 1)
> > > > > > {
> > > > > > // Oh no! We don't have any lines! // Let's do some stuff!}
> > > > > >
> > > > > > That basically just gets an instance of the order adapter and then
> > > > > > looks to see how many rows there are.
> > > > > >
> > > > > >
> > > > > > On Thu, Aug 25, 2011 at 8:32 AM, Ian <ianwhardy@> wrote:
> > > > > >
> > > > > > > **
> > > > > > >
> > > > > > >
> > > > > > > I thought that too. However, I have slightly changed what I want
> > > to do, and
> > > > > > > I want it to fire when the user clicks on a custom button.
> > > > > > >
> > > > > > > Would you have an idea where I should start?
> > > > > > >
> > > > > > > --- In vantage@yahoogroups.com, Waffqle <waffqle@> wrote:
> > > > > > > >
> > > > > > > > You will likely need to write some code on the screen.
> > > Something that
> > > > > > > fires
> > > > > > > > when the user tries to close the order or the form.
> > > > > > > > What you're doing is a bit trickier than you might expect as
> > > Epicor
> > > > > > > requires
> > > > > > > > that an order be saved before lines can be added.
> > > > > > > >
> > > > > > > > On Thu, Aug 25, 2011 at 5:30 AM, Ian <ianwhardy@> wrote:
> > > > > > > >
> > > > > > > > > **
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Morning All,
> > > > > > > > >
> > > > > > > > > I am trying to raise an exception on sales orders when the
> > > user hasn't
> > > > > > > > > entered a sales order line before they save.
> > > > > > > > >
> > > > > > > > > Can this be done via a BPM, or will it be coding?
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > *Waffqle Driggers*
> > > > > > > > *High End Dev, System Design, Profit Drinking
> > > > > > > > *
> > > > > > > > *:: 904.962.2887*
> > > > > > > > *:: waffqle@*
> > > > > > > > *:: NO FAXES*
> > > > > > > >
> > > > > > > > *
> > > > > > > >
> > > > > > > > *
> > > > > > > >
> > > > > > > >
> > > > > > > > [Non-text portions of this message have been removed]
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > *Waffqle Driggers*
> > > > > > *High End Dev, System Design, Profit Drinking
> > > > > > *
> > > > > > *:: 904.962.2887*
> > > > > > *:: waffqle@*
> > > > > > *:: NO FAXES*
> > > > > >
> > > > > > *
> > > > > >
> > > > > > *
> > > > > >
> > > > > >
> > > > > > [Non-text portions of this message have been removed]
> > > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > >
> > > [Non-text portions of this message have been removed]
> > >
> >
>