Reduction of Released amount
Dear All,
While Reducing release from WBS element by some Amount, I am getting error
as "Item WBS Element bugdet exceeded" message No: BP604
detail: Butget for fiscal year 2007 was exceeded
Regards
Honyal
Dear Hemanth/Chandra,
my example is like this:
Release Distrublutable Assigned
overall 45,000,000.00 Rs 45,000,000.00 0.00
2007 44,754,329.57 Rs 44,754,329.57 44,754,329.57
2008 245,670.43 Rs 245,670.43 7,245,141.40-
For 2008 assigned is in Negative 7,245,141.40
while going to reduce the released budget of an WBS element
it is giving error as: In doc item WBS element ABC, budget for fiscal year 2007 was exceeded by 6,000,000 Rs
Regards
Honyal
Similar Messages
-
Purchase Requisition Overall release amount
Hi,
I am working on PR overall release amount workflow.
How can i find the overall release amount in the tables of PR while entering into the workflow.
Depending on this amount we need to further proceed for approval process.
Regards,
Gopinath Addepalli.Dear Marco Antonio,
I have never faced your issue, but have an idea of what you can do.
Activate Enhancement M06B0005 EXIT_SAPLEBND_004
Then in the program zxm06u31 put the following code line:
e_ceban = i_ceban.
and also a breakpoint so that it stops automatically upon PR verification or saving.
Activate and then create a PR with the problem you are facing. On saving the program will stop in your breakpoint.
Look at structure i_ceban there you will find the values that your release strategy is getting from the document and with which it will try to determine the strategy based on your classification.
I the standar logic is not what you want maybe you can put some logic of your own based on account assignments in structure C_EBKN.
Well, tell me what happens
Best Regards,
Sebastián Ligueros -
How can I restore my iCloud back-up following reduction of storage amount on 1 Oct 2013?
As a former Mobileme member, my free storage plan was reduced to 5Gb on 1 Oct 2013. Before that, I had around 5.2Gb of iCloud backup size. Today (less than 1 month after 1 Oct) it shows a new back up of just 100Mb. What happened to my earlier back-up (the one rolling over from iOS 6 etc.)? iCloud's notification email says back-up "will temporarily stop working" and that's all.
I have now increased my storage buying 10 extra Gb of iCloud Space and my back-up (which was circa 5.2Gb before reduction) has not restored. What happened to it and how can it be restored?
Thanks!No, you have to erase the device to restore from iCloud backup.
Restoring form backup is all stuff, yo can't select what to restore
What you can do is to now transfer iTunes purchases to your computer by: -
PO Release Resetting after Value Reduction
Hi,
Although I searched through the forum but I was not able to find any practical answer to the query. When there is a value reduction of quantity or price in a PO, if after reduction PO doesnu2019t fall into another release strategy, POu2019s current release strategy doesnu2019t reset. Customer has such a demand that whenever a reduction occurs in a PO, it doesnu2019t have to fall into different strategy, all previous approvals should be reset and approval of PO should restart from the beginning. I also found that to complete such a requirement I need to use user exit ZXM06U22 but I couldnu2019t succeed to write the ABAP code.
Any idea, thought would be appreciated.
Thank you
MetinHi,
When you reduce quantities or values the system only resets the release
if ANOTHER release strategy is determined for the lower quantity or the
lower value. If no other release strategy is determined by the reduction
of the amount or value, the system will keep already existing releases.
For example:
Once the approval has been made for 5.000 EUR there is no need to
re-approve it again till the total net amount is lower than 5.000 EUR.
(e.g. 2.500 EUR or 3.000 EUR)
The release indicator will only be reset if the total net value of
the PO is HIGHER than the old one (5.000 EUR).
This is the standrard behaviour.
For more information please refer to notes 662993 and 493900.
Regards,
Edit -
Amount release triggered at document posting, not parking
Our objective is to have senior accounting personnel approve/release journal entries that exceed a certain value, say $100,000. We have configured the release function for parked documents, using workflow WS10000051 with business object 'FIPP', event "COMPLETED" and release amount of $100,000. However, this appears to assume that staff have authorization only for parking, because if you have posting authorization, nothing stops you from posting a document over $100,000. It seems illogical that you have to exceed a certain $ value before the release will trigger, but if your document is below the amount, you can't post it because you can only park.
In order to avoid making approvers release every single journal entry, what we want is for users to be able to post any document below $100,000.00, but be forced to park ( save as completed) all documents >/= this limit. We tried setting up a validation on the document amount, but the error message forces us to exit completely, i.e. doesn't allow us to park the document.
Is there perhaps a different workflow that triggers at the point of posting, rather than parking, that will accomplish what we want?
Thanks,
KathrynHi Kathryn,
Were you able to find a solution for this problem. We have the exact same requirement. Any pointers will be helpful. Thanks.
Regards,
Anuj -
How to get PO Amount Release in the PO/BAP form
There is a field in the PO/Blanket Purchase Order from, PO_HEADERS.AMT_RELEASED_DSP , which is calculated when the form open. Does anyone knows if there are any API or program logic to get the amount?
Thanks in Advance
Regards
LawrenceHi,
Pls refer this link, you will get query
Blanket Releases Amount
thanks -
Block PO in ME22N - release strategy
Hello Abapers,
I have been trying to block a PO under the following scenario.
A user creates a PO for 1000 and submits to manager.
The manager approves the PO.
The user amends the PO and reduces the amount.
What the functional guys want to happen is that in this scenario, the PO should be blocked until the PO is reapproved by the manager.
I have tried user exits and BADIs and have changed the field EKKO-FRGKE to 'B' (blocked) upon saving when the conditions are met.
When I look at EKKO in SE16, the field FRGKE = B, so it looks like the change was successful.
However, when I look at the PO, the tab for 'Release Strategy' in the PO header is missing. The functional guys assure me that this tab should be visible.
So, my question is, is my logic too simplistic (changing EKKO-FRGKE to 'B' )?
Should I be changing data for the release strategy as well?
Thanks in advance,
KevinThanks Christine.
I know that functionality is already in place using classification characteristics, that if the PO is over a certain amount, then the PO is blocked.
However, the functional guys told me that it is not possible to check for reductions in PO amount using classification data.
I will check out the FM in your post. -
Overall Purchase requisition Release strategy : Changed after Rejected
Hi All,
I have activated overall purchase requisition Release strategy (20000077) . And its working fine when PR is released at each level and saved.
Problem I have is when PR is rejected .
When PR is rejected , workitem is created for initiator with ME52 transaction. When initiator changes the contents of PR and saves , the release strategy should resume back from where it stopped. Thats means when Approver A rejects the PR, after initiator make changes , the workflow should trigger back with a workitem for release to approver A.
But its not happening as expected. When Approver A rejected the PR and initiator changes the PR , Nothing is triggered, as there is no event raised at this point.
ME52 changes for PR is not trigerring any event which can trigger the WF.
Is there any way we can trigger Workflow in this scenerio.
Please suggest.Hi Subhashini,
This all depend on release strategy. release should reset completely on tha change.
For the increase of quantities or values you can maintain tolerance limits in the Customizing. When you increase the amount or value via the tolerance limit the system will reset the release.
When you reduce quantities or values the system only resets the release if another release strategy is determined for the lower quantity or the lower value.
If no other release strategy is determined by the reduction of the
amount or value, the system will keep already existing releases.
changeability in Release indicator also play a major role. You should set it to either 3 or 4. Now if you change any field, which is also used in any charecteristics in release, it will lead to reset of release startegy.
Sanjeev -
dear gurus,
I have created a release strategy. it is working fine. if i edit it in such a manner, that the po value increases, it goes for re-releasing. but the issue is, if i edit it in such a manner that the PO Value decreases it does not go fo re-release.
so my requirement is that, if the PO value goes down it should go for re-releasing
thanks
ujwalHi,
please see the note 662993 Resetting an already occurred release.
"When you reduce quantities or values the system only resets the release
if another release strategy is determined for the lower quantity or the
lower value.
If no other release strategy is determined by the reduction of the
amount or value, the system will keep already existing releases.
This is a standard functionality and is desired.
A change of this functionality is only possible by means of a
customer-specific modification."
In standard there is no customizing setting to change this behaviour.
You need to use userexit EXIT_SAPLEBND_002 or modify
the standard function module ME_REL_STRATEGIE_EKKO for this.
Regards,
Edit -
Extended Withholding Tax - Minimum Amount
Dear SAP Expert,
In our setup we have extended withholding tax incoming payment for outgoing invoices.
The scenario is if invoice base amount is less than 300 EGP (local curreny) then withholding tax information should not capture invoice document.
I setup minimum based amount on withholding tax type and withholding tax codes level but still when user post outgoing invoices WHT information is captured in FI document.
Because of above issue automatic clearing (F.13) is not happening and we are getting error message like "Items with withholding tax code for customer subject to withholding tax"
looking for expert assistance.
B/R
Prashant RaneDear Mani,
Thanks for assistance.
from your example I understand if invoice amount is less than 10,000 then WHT should be applicable.
In my example min invoice amount is 300 EGP
where 2 % WHT is applicable
I wanted to know in which below field I should enter 300 EGP (from your example 10,000)?
Calculation > Withholding Tax Codes > Define Formula for calculating Withholding Tax:
Currency u2013 EGP
W/Tax Type u2013 I2
W/Tax Code u2013 P2
Valid from u2013 01.01.2009
To base amount - 999,999,999,999
W/Tax Rate u2013 2%
Reduced Withholding Tax Rate for Exemption u2013 BLANK
Reduction of Base Amount u2013 BLANK
Decreased Reduction of Base Amount - BLANK
Below is complete customizing I did in my setup
Financial Accounting
Financial Accounting Global Settings
Withholding Tax
Extended Withholding Tax
Calculation > Withholding Tax Type > Define Withholding Tax Type for payment posting:
Withhld tax type u2013 I2
Base Amount u2013 Net Amount
Accumulation Type u2013 No accumulation
Control Data u2013 W/Tax base manual, manual W/tax amnt, w/tax for payments, no cert. numbering
Base amount u2013 W/tax code level
W/tax amount - W/tax code level
Minimum check u2013 Min. base amnt check at doc invoice level
Post W/Tax Amount - YES
Calculation > Withholding Tax Codes > Define Withholding Tax Code:
Withhld tax type u2013 I2
W/tax code - P2
Base Amount u2013 Pecentage subject to tax 100%
Postings Indic- 1
Calculation u2013 W/tax rate u2013 2%
Calculation > Withholding Tax Codes > Define Formula for calculating Withholding Tax:
Currency u2013 EGP
W/Tax Type u2013 I2
W/Tax Code u2013 P2
Valid from u2013 01.01.2009
To base amount - 999,999,999,999
W/Tax Rate u2013 2%
Reduced Withholding Tax Rate for Exemption u2013 BLANK
Reduction of Base Amount u2013 BLANK
Decreased Reduction of Base Amount - BLANK
Calculation > Withholding Tax Codes > Minimum and Maximum Amounts
Min / Max Amounts for W/Tax Type
W/Tax Type u2013 I2
Currency u2013 EGP
Valid from u2013 01.01.2009
Min W/Tax Amount u2013 60
Max W/Tax Amount - 999,999,999,999.00
Min base amount u2013 300
Min / Max Amounts for W/Tax Code
W/Tax Type u2013 I2
W/Tax Code u2013 P2
Currency u2013 EGP
Valid from u2013 01.01.2009
Min W/Tax Amount u2013 60
Max W/Tax Amount - 999,999,999,999.00
Min base amount u2013 300
W/tax base exem amount u2013 BLANK
Company Code > Assign WHT Tax Type To Company Code:
Company Code u2013 0011
W/Tax Type u2013 I2
Customer Data u2013 Subject to W/Tax -
Regarding the budget release and assignemnt of budget.
Hi,
I have created investment profile and distibuted the budget.(IM01,IM11,IM22 & IM52)
Partial release of budget is done through (IMCBR3)
Project is created and investment position ID is assigned (CJ01)
WBS element is created under the above project- CJ02
Budget is distributed to the respective project -CJ30
Partial release of budget is done against the project - CJ32.
problem:
1. Budget can be distributed above the released amounts for the projects assigned with investment positions
2. Assinment of budget happens above the released amount i.e., I am able to create PO above the release amount against the WBS element.
Quiries:
I want to how the release part controls the budget assignment?
Is any configuration need?
How the availability control acts?
Please explain.
Best Regards
M KishoreHi koshor,
Please check for GL used for Material / Service procurement secondary cost element is created.
In OBYC entries are maintained in GBB and BSX.
Budget check will happen for only thos GL for what secondary cost lements is creaed. If for any GL cost lements are not created then budget check will not happen.
Also check in Budget tolerence limit you maintained the setting for all transaction ++ or for some specific transactions. If you skipped PR PO here then system will not check for the budget.
If your requirement is budget check for all transaction then maintain ++.
Please check try and revert back. -
Hi All,
We are using BCS since last 2 years with auto release process.Now we would like to implement release scenario through FMBBC or FMPPRELE. I have did mentioned customization settings in sand box ,but unfortuntly system is not considering the release flow.
1. Define release scenario and asiged to FM area
2. Define budget type and assigned to business process
Is there any other settings required to do to achive the release procedure ? & Which report gives Budgted and released amount details in bcs ?
Rgds
ManiSumaHi Eli ,
We are not using statastical budget types in our legal entity. We are using two bduget document types one is for budget and second one is release. In first step i was uploaded $ 100 intial budget with using of FMBBC trasaction code for one commitment item against sinlge fund centre,but i wasn't release the same.As per standard SAP not allowed to create any PR's and revenue expenditures posting unless and until release the budget.
In my case system is allowing to create PR,PO and expenditure postings up to $100 before release the same amount.I checked the all customization settings also,whcih same are fine. As per my knowledge SAP would check the bduget amounts whether it is released or not.If it is not system not allowed postings. In my case system directly takes the budget values.Kindly help me out.
Rgds
ManiSuma -
Differences between being an Oracle and SQL DBA?
Sorry to post this here, but I need so insight and don't know any Oracle DBA's. As posted here before, Ive been a MSSQL DBA for about 6 years and want to broaden my skill set. One of my ideas is to learn Oracle. For the record, I do realize that my teaching myself wont open up hundreds or Oracle DBA jobs, but Im hoping to land a "mostly SQL with a little Oracle" gig somewhere. Ive successfully installed Oracle on Linux, and now need to make a decision on if to proceed or not. Any insights from people that have worked with both platforms would be especially helpful, but all thoughts are definately welcomed. So now my questions:
1. Why are Oracle DBA's paid more than SQL DBA's? It must be something skill specific? What is it?
2. Will this trend likely continue as newer versions of Oracle are released that are easier to manage?
3. With that extra cash, is there typically more hours involved? I dont mind working a bit extra if needed, but I do have little ones that I'd like to watch grow up.
4. Are there typically differences in the job responsibilities between Oracle and SQL DBA's? The changing trend these days is to include DTS/ Analysis Services/ Reporting Services all under the DBA umbrella. Do Oracle DBA's typically have the same type of stuff?
5. If I do continue down this path, it would probably be far easier for me to learn on Windows than *nix. Is this a valid thing to do, or should I not bother? I've been told that it's still worth while, but have real reservations about needing to tell an interviewer "I've only used it on Windows".
I realize this is all subject to personal experiences and feelings, but don't know how else to figure this stuff out without asking.
TIA, ChrisRBy SQL DBA, I assume you mean SQL Server DBA. SQL is 'Structure Query Language' and is not a specific product, no matter how much the Microsoft community might wish to usurp the term. <g>
There are mauy reasons for this, including the Oracle vs Microsoft mindset that has been nurtured over the years. For many managers, 'Oracle is solid, reliable and expensive' whereas 'Microsoft SQL Server is cheap, not necessarily as reliable, but good enough'.
Whether true or not is irrelevant, these are direct quotes from some of my customers.
My remaining answers are based on my personal experience, and may only be valid in my area. (Yes, things are VERY regional.)
>
1. Why are Oracle DBA's paid more than SQL DBA's? It
must be something skill specific? What is it? Often, an Oracle DBA is a trained DBA. SQL Server DBAs seem to be decent developers who are [or have been stuck] doing DBA work.
I find that SQL Server DBAs who are truly capable of handling all of {backup, recovery, troubleshooting, security, development, disaster recovery, audit, locking, configuration, RAID and disk, upgrade, migration and porting (to name a few)} competently are generally paid comparable to Oracle DBAs.
However, I also find there are extremely few true SQL Server DBAs.
>
2. Will this trend likely continue as newer versions
of Oracle are released that are easier to manage?Yes.
Although Oracle administration is easier, DBAs are now expected to handle more instances, and adminstrator across more servers, and are expected to be competent in more of the feature capabilities.
There is NO reduction in the amount of work. The 'easier to manage' stuff simply means being more efficient.
>
3. With that extra cash, is there typically more
hours involved? I dont mind working a bit extra if
needed, but I do have little ones that I'd like to
watch grow up.
A blatant observation: Oracle tends to be used in more mission critical environments, and SQL Server in department support environments. Mission critical tends to be watched closer, and require 'fast aqnd competent' response. Pager duty seems to be more prevelant in Oracle positions - department server crashes can be handled by a reboot in the morning.
4. Are there typically differences in the job
responsibilities between Oracle and SQL DBA's? The
changing trend these days is to include DTS/ Analysis
Services/ Reporting Services all under the DBA
umbrella. Do Oracle DBA's typically have the same
type of stuff?Many SQL Server 'DBAs' I know personally are 'super developers' but not really DBAs.
Observation: DBAs are often very 'repeatable' detail oriented, whereas developers are 'get it done' oriented. Very different mentailties, both very important.
>
5. If I do continue down this path, it would probably
be far easier for me to learn on Windows than *nix.
Is this a valid thing to do, or should I not bother?
I've been told that it's still worth while, but have
real reservations about needing to tell an
interviewer "I've only used it on Windows". Oracle is quite operating system independant. Pick your poison.
SQL Server is quite operating system dependant. Some else picks your poison.
There is no shame in saying to an interviewer that you have a strong competence in Oracle but only experience in Windows. A good potential employer will often provide appropriate additional training to a suitable, honest, candidate.
>
I realize this is all subject to personal experiences
and feelings, but don't know how else to figure this
stuff out without asking.
I strongly encourage you to contact locals rather than ask in these forums. Check whether there is an Oracle User Group close to you, and meet and chat with the members. Ditto for SQL Server. (You can find out by contacting respective sales reps.)
The above is NOT a dismissal of SQL Server capabiltites or SQL Server DBAs. (Some close friends are extremely competent with SQL Server.) It is just a set of personal observations. -
Thanks to all those who responded requesting the Express white paper. I
received an overwhelming response. I was expecting a dozen or so
requests - I received over 80. Apparently there is strong demand for
lessons learned about working with Express.
The paper is in-progress. Everyone that requested it will get it when
it is ready, hopefully before end of September. BTW, my paper on
Express and the Object/Relational Problem will be published by Dr.
Dobb's Journal about that time also - the publisher tells me that the
November issue will be on the newsstands by end of September. The DDJ
article is a review of the basics of Express, what it does, and how
you develop with it. It also includes our early experiences with it
(article was written end of April and reflects almost three month's
experience with Express at that time). The article also goes briefly
over our concept for a rapid process specific to Express. The white
paper will have much more to say on the topic.
Several people thanked me for my generosity in offering a free white
paper and sharing our experiences with the Forte' community. There is
nothing generous about the offer: it is unabashed self-promotion in the
finest tradition of American crass commercialism. We're a consulting
company. We sell our knowledge and experience. If, after you get the
white paper, you would like to retain us on a consulting assignment we
would be very grateful, and you will have a chance to pay us back for
our generosity. If not, maybe you can reciprocate and share your
experiences.
Now to the subject of this posting: why am I posting this now? Well,
for one thing, I received several responses that said something
like: " we've tried Express and we were disappointed with ...", or "we've
been using it and have been frustrated with ...", or "we've evaluated it
and we had difficulties with ...". I started writing reply notes to each
of the individuals who expressed those negative experiences, but when I
reviewed what I wrote, it sounded like a Dear Abby column, with the replies
sounding like: Dear Disappointed, or Dear Frustrated, or Dear With
Difficulties. I decided I'll just post one note for all those who've
had negative experiences, or who are just starting to use/evaluate Express
and are likely to have similar experiences. Hence this. I also felt that
I should give people somewhat of an overview of what's coming in the
white paper while they're waiting to get the finished product.
Perhaps initial difficulties with Express is a problem of unrealistic
expectations. I always try to remember Mick Jagger's words. Mick, as
everyone knows, is one of the great software minds of the 20th century:
"You can't always get what you want ...". You must determine if you're
getting what you need.
Seriously, I have been working on the object/relational "impedance
mismatch problem" for close to ten years now (since 1987 when I
developed an Ada/SQL binding for the US Department of Defense). I have seen
many solutions, and have developed several myself for C,C++,Ada and
for Oracle, Sybase, Informix, and Ingress. I find Express to be one
of the most elegant solutions to that thorny problem. If you look at it from
that point of view alone, it's very hard to fail to be impressed. If you're
expecting Express (or PowerBuilder 5, or any other solution) to be yet another
Silver bullet to slay the development monster then you'll be disappointed.
Software development is hard, will continue to be hard, and will continue
to get more complex. Anything that can help us eliminate or reduce what
Frederick Brooks calls "accidental complexity", and design around "essential
complexity", will help. Forte' and Express definitely do that. Paul
Butterworth's paper on "Managing the New Complexities of Application
Development", shows how Forte' has solved many of the development/deployment
problems. If you haven't read it, I highly recommend it. If you have, I would
recommend a re-read if you've forgotten why you chose Forte' to begin with, or
if you yourself did not participate in making that choice, The Express user's
manual, "Using Forte' Express", shows how Express extends Forte' to reduce
the complexity of developing RDBMS-based systems.
To get an appreciation for what Express does for you, try a simple
experiment : spec out a GUI/RDBMS application, say the order entry application
that comes with Express as a tutorial. Do it without Express. Then do it with
Express. Try to make the application as complete as possible - it must
implement all your business rules and have all the behaviors that you desire.
Relax a bit about look and feel. Also Remember to keep the experiment fair.
As part of your application development come up with a framework and an
architecture that the next application will use. Your non-Express application
also must be as extensible and modifiable as Express allows an Express
project. Record the development time of both. If you can beat Express in
development time, then you're a Forte' development Guru and people should be
beating a path to your door.
Lest anyone think I am a cheerleader for Express, I want to mention that
I have some very strong disagreements with several aspects of the
Express architecture. One major problem I find with it is conceptual.
The Express relational encapsulation has added a great deal of accidental
complexity, i.e complexity that is not inherently there because
of the nature of the problem. It arises because of design or implementation
choices. Express represents each database table with three classes (there is
actually six classes per table, three of which are just derived place holders
to contain customizations, so we'll ignore them for this discussion). For a
table EMP, Express produces three base classes: an EMPClass, an EMPQuery
class, and EMPMgr class. The EMPClass is quite understandable. It
encapsulates the table's data. The EMPMgr class is somewhat understandable,
it encapsulates operations that manage the table's data as it crosses the
interfaces. But why do we need one class per table? A manager should manage
several things, not one thing. That leads us to EMPQuery, the encapsulation
that I have most difficulty with: creating a query class for each table. That
is definitely the wrong abstraction.
If you consider that, in general, a SQL query is multi-table:
select t1.col1, t2.col2, t3.col3, ...
from t1, t2, t3, ..
where <expressions on t1.col1, t2.col2, ...>
order by <expressions on t1.col1, t2.col2, ...>
you'll see that the abstraction here is a query tree across many tables,
many columns, and a large variety of expressions - single and multi-table. To
attempt to encapsulate that in objects that are basically single table objects
will produce a great deal of accidental complexity. The design choice of one
query class per table makes writing one-table queries simple, but writing
multi-table queries awkward.
The Express architecture would be much simpler if there is a QueryTree
class for all tables. Better yet, leave the representation of queries as
text strings - ANSI or Forte' SQL on the client side, and DBMS-specific on the
server side. A great deal of complexity in doing query customizations will
be reduced. You will lose some type checking that the current design has, but
hey, you can't always get what you want. When you have several hundred tables
in your database and Express generates six classes to per table, you'll see
that the number of classes generated as excessive. When you try to design a
general query modification scheme you'll realize how awkward multi-table joins
are to do via the Express BusinessQuery class. Last week I was developing a
general design for row-level security, the query structure drove me crazy,
I ended up catching the generated SQLText and inserting the security
constraints.
Now back to the Dear Abby column: If you're unhappy because of performance
issues, try to isolate the reason for the poor performance. This is not easy
in 3-tier applications. Don't be too quick to blame the bad performance on
Express. Do you have a non-Express benchmark application that does the
same thing and outperforms Express? Don't be too quick to blame Forte'
either. Do you have a non-Forte' benchmark, that does the same things
and outperforms Forte'? The operative words here are "does the same
things". A VB application that issues a SQL Select is not a benchmark.
Forte' allows you to instrument applications to study performance
bottlenecks. Find out where your hot spots are and try to do some design
work. If the Express architecture gets in the way, it's time for feedback
to Express developers.
Performance issues, particularly in 3-tier client/server systems are
multi-faceted and complex. There are many interactions of database
issues, interaction of the database with TOOL language issues, locking,
caching, timing of asynchronous events, shared objects, distributed objects,
remote references, memory allocation/deallocation, message traffic,
copying across partitions, etc. etc. that have to be considered. There
was an interesting discussion just a few days ago on multi-threading
on the client side, and blocking in DBMS APIs. Issues like that can
keep you bogged down for days. I have worked on several performance efforts
on triage tuning teams and swat re-design teams, where several hundred man
hours were dedicated to performance and tuning of c/s systems. Big and
complex topic. What I would advice about performance is what Tom Gilb says:
"(1) don't worry about it, and (2) don't worry about it yet" - assuming of
course that you have a rational design, and a sound framework. Many sins of
design are committed in the name of performance. Anyway, enough
of the harangue about premature considerations of performance. Bottom
line is : once you get your functionality, instrument, measure, and tune. If
your architecture was sound, you won't have to re-design for performance, you
would've designed it in.
On our project the system is so large we are subsumed with rapid process
issues: how can we get this monster finished on time? without having to
expand the team to several times its size, and without having to spend more
than we can afford? The upcoming white paper's focus will be on the rapid
process. Probably at a later date, we'll do another paper on performance
issues with Express.
Another reason you may be unhappy with Express is if you perceive that
it is the wrong tool for your application - but was chosen by
corporate mandate. If your application does not involve an RDBMS (say
real-time process control), then Express is obviously not for you. It may
also appear that Express is not suitable for your application if your usage
of the RDBMS is marginal, but your application logic is quite complex (in our
case the application has many AI aspects to it, a rules-based database, and
many interconnected patterns of rules, and rich behaviors). If you find
you're spending too much time doing things outside Express, fighting
Express, or doing way too many customizations, then Express may
not have been the right choice for your application.
Don't think, however, that Express is only for those applications that
maintain relational base tables. You can use a relational database to
store tables other than base tables (state transition tables, dialog
support tables, views, and other kinds of virtual tables). To make use
of Express's powerful application generating capabilities you can use
tables created for the sole purpose of of supporting an Express
application model. The table is in essence, a state transition
diagram. The Express application model creates rows in this
virtual table while the dialog is in-progress. You can use insert and
update triggers in your SQL engine to do the real thing to your base
tables. This trick is among some I'll detail in the white paper.
Another reason some people may be unhappy with Express may be methodology
tension between those who use behavior-driven methodologies (Booch, Jacobson,
Wirfs-Brock), and those who favor data-driven methodologies (OMT, Coad). If
you're in the first camp, you'll probably feel that the modeling done via
Express is not adequate. You'd probably say "that's not an object model!
that's an ERD". You would be half right - the Express business model shows
only containment and association relationships. It does not document "uses"
relationships, so it really can't be considered a full object-model. Granted;
but once you make that realization, your reaction should be one of joy, not
sadness. This is a brilliant reduction in the amount of modeling that needs
to be done since most MIS systems are dominated by their data-model, not their
behavior model (See Arthur Riel's Design Heuristics) . Behavior-based methodologies,
with their documentation of use-cases and class behavior will tend to be analysis
overkill for most MIS projects. For some OOA/OOD practitioners, going back to a
data-centered process may be unpalatable. For those folks my advice would be to try to
look at the business model/application models as meta-models. Take the
generated classes and produce a full object model if you wish. Document your
domain classes in your favorite CASE tool. By all means document
domain-pertinent behavior and use-cases, they will help you test. But do
appreciate the productivity gain produced by the reduction of modeling load
that Express data-centered approach gives you. Your detailed
behavior-based, use-case model may be a luxury you can't afford.
If the methodology clash manifests itself politically in your
organization, where you have the OO purists pooh-pooh a data centered
approach, then you have my sympathies. My best advice is to cool it on the
methodology religion front. If you have a product to deliver, you can't
afford it. Also keep in mind that even if your modeling work is reduced by
adopting a data-centered Express process, you'll still have ample
opportunities to fully utilize your OOD expertise when it comes time to add
functionality or improve performance of the entire application as a whole.
There will still be processes where Express may not be expressive enough. Those
processes whose behavior is so rich and intricate that you cannot find a
data-based trick to model them with, you'd have to do outside Express. These
should be rare and the exception not the rule in MIS systems, however.
Does that exhaust the list of reasons of why people may be
disappointed in Express? Probably not. Undoubtedly Express reduces your
degrees of freedom, and constrains your choices, but many times "jail
liberates". More reasons? I've heard some complaints about repository
corruption problems. I'm not aware that we've had those, or that it is
something due to Express. I'll check with our Forte' system manager. If we
have, they must not have been show stoppers, and our system manager must
have dealt with them quickly enough that the developers did not notice much.
Until you get the full paper in a few weeks, I'll leave you with some
thoughts about Express, and OO development in general:
1. Learn about the concept of "Good enough" in software
engineering. Here are some sources:
- Ed Yourdon: Read Ed Yourdon's article in the last issue of Byte,
titled "When Good Enough is Best". One of Yourdon's tips in the
article: "It's the Process, Stupid!"
Don't take "good enough" to mean that development with Express
requires you to lower your expectations, or lower your
standards. You must tune the concept of "good enough" to your
acceptable standards.
- Arthur Riel: Read Arthur Riel's great book "Object-Oriented Design
Heuristics". Riel shows that there are many problems with no optimal
solutions. This is particularly true in those systems that
are not purely object oriented. Systems that interface with
non-object oriented "legacy" systems, which is what Express
is. Also, Riel's discussion of behavior-based vs data-based
methodologies is very illuminating.
2. Don't obsess about look and feel. That's where Express is most
constraining. If you have unique look and feel requirements,
and look and feel is paramount to you, save yourself some pain and
choose another tool, or sing along with Mick: you can't always get
you want ...
3. Be clear about what rapid development really means. An excellent
resource is the book by Steve McConnell of Microsoft: "Rapid
Development - Taming Wild Software Schedules". A thick book, but the
chapters on best practices, and the tens of case studies are great. The
book shows clearly the differences between evolutionary
delivery, and staged delivery. It shows the differences between
evolutionary prototyping, throwaway prototyping, user-interface
prototyping, and demonstration prototyping and the appropriate uses
and risks of each. In our white paper we advocate a life cycle
approach that is basically evolutionary prototyping, with evolutionary
delivery, and occasional use of throwaway prototypes. We don't advocate
using Express for demonstration prototyping.
4. Realize that Express is maturing along with the product you're
developing. If you don't have deep philosophicalobjections to the
Express framework and architecture, then most of
the concerns with Express would be temporary details that will be
smoothed as Express, and Forte', mature. How long did we wait for
Windows to mature? Let's be fair to the Express developers.
5. The main keys to success in Express are not rocket science (I
worry now about having hyped up people's expectations myself). The
major keys to success revolve around management issues, not
technical issues: expectations management, process management,
and customizations management.
The full paper includes the design and implementation of a Customizations
Management System that allows you to plan customizations needed and to
inventory customizations completed. It automates the process of
extracting the customizations completed from the repository and stores
them in a relational database. A customizations browser then allows
management to plan and prioritize the implementation of customizations. It
allows developers to study the completed customizations and to reuse code,
design, or concepts to implement further customizations. Managing
customizations is absolutely essential for success in Express. The paper
will also detail a rapid process that is "Express friendly".
I'm glad there was such a big response to the white paper offer. Now I have
to sit down and write it!
Nabil Hijazi Optimum Solutions, Inc.
[email protected] 201 Elden Street
Phone: (703) 435-3530 #501
Fax: (703) 435-9212 Herndon, Va 22070
================================================
You can't always get what you want.
But if you try sometime, you might find,
you get what you need. Mick Jagger.
------------------------------------------------[email protected] wrote:
>
A few comments on Nabil Hijazi's observations...
Nabil Hijazi writes...
One major problem I find with it is conceptual.The Express relational
encapsulation has added a great deal of accidental complexity, i.e complexity
that is not inherently there because of the nature of the problem. It arises
because of design or implementation choices.
Paul Krinsky comments...
Anyone who has used NeXT's Enterprise Object Framework (EOF) will be at home
with Express's architecture, it is very similar. NeXT has been around for a
while and have gone through a lot. They originally started with DBKit to solve
the persistence problem. Basically it wrappered the database libraries. EOF was
created when it became clear that the DBKit approach wouldn't work. EOF has
EO's (Enterprise Objects), EOQuery, EOController, etc. that do pretty much what
BusinessClass, BusinessQuery and BusinessMgr do. I'm not sure if Forte hired
people with NeXT experience, but it would be interesting to find out if both
companies came up with the same architecture independently. What are the
chances?
Nabil Hijazi writes...
The design choice of one query class per table makes writing one-table queries
simple, but writing multi-table queries awkward.
Paul Krinsky comments...
I don't think BusinessQuery is too bad once you get used to it. Multi-table
queries are pretty easy if you use the foreign attributes Express provides to
build connected queries. One feature I miss from EOF is the EOFault. An EOFault
stands in for an object to reduce the overhead of retrieving everything an
object has a pointer to. For example, a retrieve on customer that contains an
array of orders would bring in EOFaults to stand in for the orders. When one of
the orders was referenced, EOF would produce a fault (hence the name) and go
and get the required record. Of course you could force EOF to bring the real
data and not use EOfaults if you wanted (if chance were high that you would
need it). This feature saved a lot of memory and increased the speed of
retrieval while still providing transparent access from the viewpoint of the
developer. Another cool feature was uniquing. EOF kept track of the EOs it
retrieved for a client. So if two windows both retrieved Customer X, EOF would
realize this and point the 2nd window at the copy already in memory. This
avoided having multiple copies of the same object in memory and allowed
provided everyone with the most current changes.
Nabil Hijazi writes...
The Express architecture would be much simpler if there is a QueryTree
class for all tables. Better yet, leave the representation of queries as text
strings - ANSI or Forte' SQL on the client side, and DBMS-specific on the
server side. A great deal of complexity in doing query customizations will be
reduced. You will lose some type checking that the current design has, but hey,
you can't always get what you want. When you have several hundred tables in
your database and Express generates six classes to per table, you'll see that
the number of classes generated as excessive. When you try to design a general
query modification scheme you'll realize how awkward multi-table joins are to
do via the Express BusinessQuery class. Last week I was developing a general
design for row-level security, the query structure drove me crazy, I ended up
catching the generated SQLText and inserting the security constraints.
Paul Krinsky comments...
I like the fact that Express manages the mapping to the database. I can change
the underlying database schema and all my queries still work. When the DBAs
inform me that I'm not following their naming standard (remove all vowels
except for 207 "standard" abbreviations that somehow got blessed then compress
to 8 characters using a bit compression algorithm that NASA would be proud of -
am I ranting?) it lets me conform without having to deal with it except in the
business model. It's nice to have a layer of abstraction.
I'm not a big fan of having all the generated classes either. I think it's a
necessary evil because of TOOL. NeXT uses Objective-C which is much more
dynamic in nature (more in common with Smalltalk than C). Their business model
can be defined on the fly and changed at runtime. It's pretty powerful but you
always have the speed vs. size tradeoff. The BusinessQuery is a nice way to
send only the what you need to the server in a format that isn't too difficult
to translate to SQL but not so close to SQL that you couldn't rip out the
backend and use the same interface to communicate with something other than a
relational database.
With any tool you have to understand it's strengths and weaknesses. Express is
a 1.0 product. Given that I think they have done a great job. The biggest
request I have is that Express moves away from being so focused on UI and
Database access and focus more on the BusinessClasses. For example, why are the
Validate and NewObject methods not on the BusinessClass? I understand their
importance in the Window classes but they should really delegate most of the
work to the BusinessClass. Otherwise you end up with most of the logic in the
UI and a 2-tier application. One of the first things we did is extend the
Window classes to delegate validation, etc. to the classes they display.Paul,
This a very good point. After reviewing all the customizations we have done on
our Express project, (BTW, I work with Nabil) I found that we have not done any
business service customizations except for database row level security. We could
have easily moved validation to the business classes. Actually, Express gives you examples
for this. They recommend customizing the insert and update methods to apply validation.
You could simply add your own validate method on the business class and have the insert,
update, or the window call it. This is actually much more object oriented than coding
validation into the window classes (for the oo purest out there!).
Robert Crisafulli
AMISYS Managed Care Solutions Inc.
(301) 838-7540
>
I look forward to reading the white paper on Express. I would encourage anyone
else to post similar documents. If anyone is interested, I can dig up some
stuff I wrote on EOF's architecture. It's a good source for enhancement
requests if nothing else! If anyone has used other persistence frameworks I
think the group would benefit from their experiences.
Paul Krinsky
Price Waterhouse LLC
Management Consulting Group -
Check point in fund management for budget and creation of po
I have a Budget for a perticular expenses say Rs 100000/-, so the po should not be created for more than Rs 100000/- as per the budget. but the po is been created for more than the budget amount.
pls. let me know where the check point has to be maintain.
Thanks
Santosh Visave
Moderator: Please, search SDNHi ,
First of all as a primary step you can do the following :
1. is the commitment item getting derived in the PO.
2. Is the commitment item non statistical ( means you have not put the tick on statistical commitment item ) in FMCIA .
3. check the budget amount via the report FMRP_RW_BUDCON for the budget amount and released amount .
Hope this would help .
Cheers ,
Dewang
Maybe you are looking for
-
I can't use FaceTime after upgrading to Lion!
Hi, Yesterday I upgraded my MacBook to Lion, and afther I upgraded FaceTime does not work. I used it prior to my upgrade, and it worked perfect. I have a neew macbook pro 13" 2,3ghz bought on sunday, so its brand new!! When I try to use FaceTime I lo
-
Hi All, I am working on a user-exit which I picked up in middle of developement and which is using memory id concept. The requirement is like display error message in ME21N transaction and when clicking the Additionl Information in error msg it shoul
-
FCP7 upgrade without a previous version installed?
So yes I screwed up. let's get that out of the way. When I bought FCPX I left on my machine FCP7 for a while but then I though, eh, I'm not using 7 for the forseeable future, let's get rid of it for the time beilg and if I need it I'll just reinstall
-
IPOD Touch battery life is too short. Can I replace the battery?
My son's IPOD Touch has a battery life of about 30 minutes. It is a refurbished model and wondered if there was a way to upgrade the battery?
-
Background color only, no images :(
Hi and thank you, Yes I'm new to DW be gentle :D Ive searched a bunch of other threads but...Anyway I dont know what info you need. Im on Mac DW CS3 V9.0. I use Firefox and DirectAdmin. Alternate Text is the only thing that displays. This is the page