enhancing sap ehsm _ overview _ scn

9
9/9/2014 Enhancing SAP EHSM : Overview | SCN http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 1/9 Getting Started Newsletters Store Products Services & Support About SCN Downloads Industries Training & Education Partnership Developer Center Lines of Business University Alliances Events & Webinars Innovation Log On Join Us Hi, Guest Search the Community Activity Communications Actions Browse SAP Environment, Health, and Safety Management (SAP EHS Management) Introduction: I have recently had the opportunity to be on a team that delivered EHSM 2.0 and upgraded to 3.0 both on ramp-up. Being such a new product I wanted to share my experience from a development perspective, hopefully providing some assistance to others embarking on a similar adventure. This first blog aims to give an overview of the solution with the intention of helping to put it all into perspective. The solution is quite well architected but it can be complex to navigate when trying to add custom requirements. I found that once I had a good grasp on how things worked over-all it was much easier to know where to look and start enhancing to achieve the desired result. In subsequent posts I would like to elaborate on the approaches to take when enhancing particular components of the solution. Background: EHSM is a new solution, extending the original EHS module and has been built from the ground up using the latest and greatest of SAP's NetWeaver ABAP infrastructure offerings. For more detail on the overall solution you can look at online help in the SAP Library - Component Extension for SAP Environment, Health, and Safety Management Architecture Overview: The diagram below provides a conceptual overview of the technical solution. The following sections will go through each of the components and the approaches for enhancing them at a high level: Enhancing SAP EHSM : Overview Posted by Ben Patterson in SAP Environment, Health, and Safety Management (SAP EHS Management) on Dec 13, 2012 12:13:40 PM

Upload: bassem-emam

Post on 19-Dec-2015

234 views

Category:

Documents


23 download

DESCRIPTION

Enhanc in SAP EHS

TRANSCRIPT

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 1/9

    Getting Started Newsletters Store

    Products Services & Support About SCN Downloads

    Industries Training & Education Partnership Developer Center

    Lines of Business University Alliances Events & Webinars Innovation

    Log On Join UsHi, Guest Search the Community

    Activity Communications Actions

    Browse

    SAP Environment, Health, and Safety Management (SAP EHS Management)

    Previous

    post

    Next

    post

    Introduction:I have recently had the opportunity to be on a team that delivered EHSM 2.0 and upgraded to 3.0 both onramp-up.Being such a new product I wanted to share my experience from a development perspective, hopefullyproviding some assistance to others embarking on a similar adventure. This first blog aims to give anoverview of the solution with the intention of helping to put it all into perspective. The solution is quitewell architected but it can be complex to navigate when trying to add custom requirements. I found thatonce I had a good grasp on how things worked over-all it was much easier to know where to look and startenhancing to achieve the desired result. In subsequent posts I would like to elaborate on the approachesto take when enhancing particular components of the solution.

    Background:

    EHSM is a new solution, extending the original EHS module and has been built from the ground up usingthe latest and greatest of SAP's NetWeaver ABAP infrastructure offerings. For more detail on the overallsolution you can look at online help in the SAP Library - Component Extension for SAP Environment, Health,and Safety Management

    Architecture Overview:

    The diagram below provides a conceptual overview of the technical solution. The following sections will gothrough each of the components and the approaches for enhancing them at a high level:

    Enhancing SAP EHSM : OverviewPosted by Ben Patterson in SAP Environment, Health, and Safety Management (SAP EHS Management) on

    Dec 13, 2012 12:13:40 PM

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 2/9

    User Interface

    EHSM has two main access channels Web Dynpro and Adobe Forms. To find all of the objects checkout the package EHHSS_PC_INC_RECORDING.

    Web Dynpro FPM

    FPM is all the rage these days and for good reason, however, when built on top of a domainmodel such as BOPF it really comes into its own. ESHM leverages this well and most of thegeneric FPM UIBBs such as forms, lists, tabbed and search components are built on top of BOPF(using EHSM frameworks with FBI [FPM BOPF Integration] ). This exposes the BOPF data layer aswell as events, relationships and even UI logic. FPM wires are used to enable generic andconfigurable connections between components and of course feeder classes are used to provideUI specific behaviour. Adobe Forms

    SAP Interactive Forms by Adobe are used for offline data entry and can be submitted via email.This provides a lot of flexibility especially for scenarios where the recording of data may beremote and difficult to access the network (e.g. for use by contractors who may not have accessto the system). Each form is generated by a 'data provider' class which pre-populates fields anddrop-downs. The inbound form is handled by an 'inbound persister' class that collects the dataand orchestrates the mapping and saving of the data. A nice feature is that these classes are notset as final and the implementation class is specified in configuration allowing for straight-forward enhancement.Although access via mobile device was not in scope for our project I did notice an iPhone app inthe app store for this and there is also a web service layer available for integrating third partysolutions of such a nature.

    EHSM Tools and Configuration

    The EHSM solution provides a large suite of domain specific logic in reusable classes, in particular agateway layer providing accesses to the BOPF configuration and transaction layer. This provides muchof the interaction and logic between the user interface layer and the BOPF transactional layer. Othertools include range of helper classes to assist in working with various EHSM concepts. One suchexample is the EHSM Party which can represent an HR Person, a System User or Business Partner, etc.(refer to class CL_EHFND_PARTY_PROXY). This model (much of it residing in packageEHFND_REUSE_COMPS) is quite rich and well worth leveraging where possible. There is even a masterdata customising generator (transaction EHFND_CUST_GENERATOR) that can generate objects such asmaster data tables, text tables and search helps for new data types.

    BOPF

    The BOPF layer provides the core business logic and most of the business rules and behaviour is foundhere. Each logical component is defined as an object so for example an incident is represented in thenode EHHSS_INCIDENT. Objects can have usage dependencies with each other and also haveinheritance. Actions relating to incidents for example are represented with EHHSS_INCIDENT_ACTIONwhich inherit from EHFND_ACTION and are linked to the EHHSS_INCIDENT object via a relationshipdefinition in the BOPF configuration definition. Within an object there are nodes that have data and behaviour configured against them. The nodesrelate to each other in a hierarchical manner with a root node at the base of the tree. Data is assignedas either persistent (saved to the database) or transient (represented at runtime only) and this isdefined by a grouping of data dictionary structures and one table per node where the data for thatnode is persisted. The BOPF Model and BOPF runtime manage the data structures, relationships andevents at runtime. The transaction layer manages the persistence and buffering of the data. The datastructures of the nodes can be extended to allow for custom enhancements. Each node also hasactions, determinations and relationships (among other things) assigned to it. Actions as the namesuggest allow callable behaviour to be executed on the node. A Determination has behaviour that istriggered on particular events in the BOPF event loop. This is where transient field values arecalculated and field control occurs.

    Workflow

    Even workflows themselves are represented using business objects from the BOPF. In this way eachprocess is encapsulated in the same framework as the other components of the solution. The businessobjects are called Process Control Business Objects (PCBOs).

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 3/9

    Overview of Enhancement:The two fundamental technologies used are BOPF and FPM. So for the scope of this blog I will brieflymention the approaches for enhancing these and as stated earlier, will go into detail on how to implementspecific scenarios in subsequent blogs.

    BOPF

    The most common and straight forward enhancement is the addition of custom fields. This is donethrough extending the standard structures in the BOPF.The BOPF Enhancement Workbench transaction [BOPF_EWB] allows custom extension to the BOPFobjects. Although not everything is configurable, much of the functionality can be extended, includingthe addition of determinations (useful for adding logic to custom transient fields), actions, queriesand even new nodes. The addition of new nodes are especially helpful when adding a new section ofdata and behaviour to the solution. For example, the addition of a new tab on the user interface.Further information can be found in the BOPF enhancement Workbench document (refer to note1457235). Another option for enhancement is to use the enhancement framework on theimplementation classes for the existing BOPF framework events.

    FPM

    Extending the functionality of FPM over BOPF is very smooth for things like adding a new field to theBOPF, simply adding the field as an enhancement to the component configuration and updating theEHSM field control configuration is all it takes. The framework takes care of all thepersistence/transactional headaches for you. Depending on the complexity of your requirements youmay need to extend or enhance the standard feeder classes of the various generic UIBB componentconfigurations. Many of the standard EHSM feeder classes are not set as final so extension is often aviable option. The following provide a good references and starting point for these concepts:

    Floorplan Manager for Web Dynpro ABAP - Developer's Guide

    How to Create, Enhance and Adapt Floorplan Manager Applications on SAP NetWeaver 7.0 EhP2

    FPM BOPF Integration (FBI) - Reusable Objects and Functions for the BOPF Environment (CA-EPT- - S... Perspectives:Above I have tried to be as factual and objective as possible, in this section I will taint this article with myown views from my experience so far.

    Triumphs

    There were many times when my colleagues would find me beaming with the warm satisfaction thatan enterprise geek would find in quickly constructing a robust transactional solution to a businessrequirement. The framework provided a convenient and logical approach to extending thefunctionality (most of the time). Overall I enjoyed working with the solution.It was a rare opportunity to be involved in an implementation followed directly by an upgrade. And allthe enhancements (from FPM component configuration, to BOPF, to methods) held up considerablywell.The combination of the solution from SAP, and what we were able to enhance, created one of themost user friendly SAP solutions I've seen of this nature.Being on ramp-up was also a good experience and I have to complement the SAP solution team for awell developed product and the great support for us while delivering it.

    Tribulations

    There were many other times when my colleagues found me shaking my fist at the screen shouting (ina workplace sensitive way of course) "curse you BOPF". The framework is complicated and this meansthat things were quite a challenge at times. In particular BOPF and FPM events and relationships (bothwithin and between the two) were particularly hard to piece together, especially at the start of theproject.At times the Field Control configuration was very hard to work with. When it worked it was great butwhen it didn't it was very hard to determine why and where the issue arose.

    Conclusion:

    The key to designing and building an enhancement in this solution smoothly is to have a good grasp on the

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 4/9

    Average User Rating

    (13 ratings)

    technology components and how they are linked together (both technically and architecturally). Due tothese things being relatively new it is hard to draw from experience, which is why I decided to share what Icould. As we have gone over the components of the EHSM solution and general approaches on how toenhance it I hope you now have a good place to start as you work with it yourself. I would be keen to hearabout your experiences and thoughts on this topic as well.This is just an overview and if I get the feedback and the time I hope to explore some of the conceptsfurther.

    10432 Views Topics: abap Tags: wda, workflow, fpm, bopf, fbi

    33 Comments

    Like (1)

    Jeremiah Stone Dec 13, 2012 6:14 PM

    Great first post, Ben! You have completely achieved the 1st rule of blogging on SCN - "leave theaudience wanting more!" It's gratifying to see what you were able to achieve in terms of extending the solution withoutexperiencing pain via the subsequent upgrade. We have done a lot of tinkering and testing in the "lab"via demo systems and proof of concept activities, and have a great deal of confidence in the solutionand architecture to behave this way, but the only real proof is customer usage and success. I'm looking forward to learning more about the enhancements you made and what you were able toachieve.

    Like (0)

    Ben Patterson Dec 14, 2012 12:02 AM (in response to Jeremiah Stone)

    Thanks for the encouragement Jeremiah

    Like (0)

    Mandar Sathe Jan 21, 2013 3:13 PM (in response to Ben Patterson)

    Hi Ben I would like to understand, how to add custom tab in EHSM - Inc mgmt using BOPF? Thanks and Regards. Mandar Sathe.

    Like (0)

    Ben Patterson Jan 30, 2013 9:54 PM (in response to Mandar Sathe)

    Thanks Mandar, I will take this on board when considering my next post.

    Like (0)

    Evhen Barzak Feb 11, 2013 6:16 PM (in response to Ben Patterson)

    Good time Mr. Ben.Do you have SAP courses how to start with EH&S module?I'll so appreciate your help. Respectfully,Evhen Barzak

    Mary Kilgo Feb 2, 2013 1:39 AM (in response to EvhenBarzak)

    Yes. SAP offers severals ways for you to learn aboutthe solution. In the on-line help http://help.sap.com/ehs-comp you will find various documents. Also, on the right

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 5/9

    Like (0)

    side of the page, you'll find a link to the educationofferings or "on line knowledge product."

    Like (1)

    sumedh utpat Apr 2, 2013 3:44 PM (in response to Mandar Sathe)

    Hi Mandar, You can add your custom Tab in EHSM-INC through FPM. Steps areas follows1. Enhance Component Configuration2. Add Tab UIBB Component3. Add list UIBB/Form UIBB in Tab UIBB and click on Configure UIBB4. Give Feeder class name and in Feeder class parameter give your BOname and Node Name. Thanks,Sumedh Utpat

    Like (0)

    shilpi agarwal Jan 20, 2014 4:16 PM (in response to sumedh utpat)

    I am able to add fields in tab in BO/SCMTMS/FREIGHTAGREEMENT ....and able to see tabon portal but field on tab not editable....can anyone help meto provide me the solution where i am missing .

    I am using same approach you described above

    Like (1)

    Sanket Vaity Apr 2, 2013 7:08 PM (in response to Mandar Sathe)

    Hey Hi Mandar,To create a Custom Tab in EHSM, enhance the component configurationand add a new tab. Regards,Sanket.

    Like (1)

    Massimo Olivieri Apr 3, 2013 9:50 AM (in response to Sanket Vaity)

    I used the new Enhancement Context-Based Adaptations(CBA), work great.

    Like (0)

    Sanket Vaity Apr 3, 2013 11:52 AM (in response to MassimoOlivieri)

    Hi Massimo,Can you please elaborate about the EnhancementContext-Based Adaptations (CBA).Will be useful to me . Thanks & Regards,Sanket.

    Massimo Olivieri Apr 3, 2013 12:43 PM (inresponse to Sanket Vaity)

    It is slightly complicated to understand, but ithas many advantages:- It is created like virtual copy of standard, you not enhancement the standard.CBA is technically realized by wrapping theoriginal application inside an embeddingcomponent Which is responsible for managingthe adaptations. This way it "s possible toenable CBAs without modifying the existingapplication. drawbacks:need to change the roles to operate the OBN read this:

    http://scn.sap.com/docs/DOC-28799https://scn.sap.com/docs/DOC-33072CD268_Adapting Floorplan Manager and WebDynpro_ABAP Based User Interfaces

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 6/9

    Like (1)

    regards,massimo

    Like (0)

    Massimo Olivieri Feb 5, 2013 4:42 PM

    Hi Ben, i need add custom field " Other Description" ( long text ,type string ) into node incident asDescription of Events ( BASIC_INFO_ALL_DESC ), i can do it? With BOPF Enhancement Workbench it is not possible add delegation node!?!

    Like (0)

    Ben Patterson Mar 12, 2013 3:12 AM (in response to Massimo Olivieri)

    Hello Massimo,Firstly, I am sorry I have not replied sooner, I expected an email update on new commentsbut I didn't receive one with your comment. Unfortunately you are correct, it is not possible to add delegation nodes when enhancingBOPF objects, therefore you are not able to create a delegation to the standard objectEHFND_TEXT_COLLECTION and re-use all the standard functionality related to this (suchas delta change handling). As a work around you should be able to create a node under Basic Info with a simplestructure containing a text field of type string (/BOBF/TEXT_CONTENT if you like) andlanguage. There will be a little more work to do it this way as you will need to set up thedetermination to manage the creations and cardinality of the node, but it should meet yourrequirements. I also hope this enhancement functionality is added in the near future... Let me know if that helps at all. This is also a prompt for me to start the next blog explainingmore detail on how to enhance the BOPF. Regards,Ben.

    Like (0)

    Massimo Olivieri Mar 13, 2013 1:47 PM (in response to Ben Patterson)

    Thanks for answer, luckily i need only 2 language local ed english. So i have create for every custom long text a sub node with:- include /BOBF/TXC_TEXT_TYPE for Administrative data( management withdetermination for update data )- desc local ( string )- desc english ( string ). Work great! I only have one problem: always need create all custom subnode otherwiseConnetion OIF webdynpro FPM does not work. (filed is disable ,not editable )disadvantage i have a lot of empity node. I tried to change same parameter: Use deferred create, Create On Demand, AllowInstance Creation, from Feeder Class CL_EHFND_FBI_GUIBB_FORM , but i havesame problem.At the monent i have determination to create custom nodes. I need another piece of advice ... there is a way to assign a default value to a fieldinto EHS customizing?

    Like (0)

    Ben Patterson Mar 20, 2013 9:17 PM (in response to Massimo Olivieri)

    Hi Massimo,it is a requirement that you have to create an instance of your custom nodevia determination as you have discovered. Another helpful thing to do is toadd a transient determination for the standard EHFND field control (re-using class CL_EHHSS_INC_D_FIELD_CONTROL). Then you can usefield control configuration for your custom node.Regarding default values, this also has to be done manually (this was afeature that we also wished to have). To fill default values you can create adetermination for this and check the execution time is after loading, or youcan enhance the/BOBF/IF_FRW_NODE~RETRIEVE_DEFAULT_VALUES method of thenode class (e.g. CL_EHHSS_INC_BIALL_DEF for basic info all).Ben.

    Sanket Vaity Apr 2, 2013 7:12 PM (in response to Ben Patterson)

    Hi Massimo,

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 7/9

    Like (0)

    Try creating just a custom field by enhancing and the BASIC_INFO_ALL_DESCusing a transient structure. Populate that custom field by an on load determination. Regards,Sanket.

    Like (1)

    Massimo Olivieri Apr 3, 2013 9:58 AM (in response to Sanket Vaity)

    it is not possible, BASIC_INFO_ALL_DESC is delegation node.

    Like (0)

    Dhinesh A.P May 6, 2013 7:15 AM

    Hi Ben,I believe this content is helpful but little complicated to understand unless u have a knowledge on thearchitecture of EHSM. Better understood if being explained using simple terminologies as I had to looksearching for terms in the blog and their functions. RegardsDhinesh

    Like (0)

    Ben Patterson May 6, 2013 7:41 AM (in response to Dhinesh A.P)

    Thank you for your feedback Dhinesh.Please let me know the specific terminologies you struggled with when reading the blog as Imay be able to elaborate on them.Kind regards,Ben.

    Like (0)

    Dhinesh A.P May 6, 2013 8:27 AM (in response to Ben Patterson)

    Hi ben, In my view, one must know well the architecture of using EHSM before goingthrough this stuff. I did not understand the terms like FPM, BOPF, feeder class,UIBB conenctions....its seems too technical for a functional consultant like me. I amfresher in this stuff.I mean to say any person will not be able to understand if asalesman try to explain the mechanism of a engine transmission system of a BMWcar. But it is rather simple to tell him it works on a automatic/manual transmission tobrief. Im sorry if I misunderstood you or I may be an amateur to this topic. Imworking on classic EHS only.Kind regardsDhinesh

    Like (0)

    Jon Gulleik Gre May 22, 2013 10:26 AM

    Hi Ben I need to automatically determine and add Line Manager(LM) and Safety Coordinator(SC) to the list ofinvolved partners when reporting an incident. Could you please give me an advice on where such logicshould be implemented? The subsequent workflow needs to send notifications about the incident to the LM and SC. How canthis be achieved? By default notifications are sent to the incident managers. RegardsJon GG

    Like (0)

    Ben Patterson May 23, 2013 3:57 AM (in response to Jon Gulleik Gre)

    Hello Jon,I would look at creating a determination on the incident root node to create these default'persons involved'. The logic to determine who these people are should of course beencapsulated in a separate class.As far as workflow goes it is best to copy the standard workflow and create your own andchange the way that the event manager is determined. Once these people are added to theincident they can be accessed in the incident object (although) indirectly via the processobject. Extension of the incident life cycle standard process object will be needed in order toadd the required new methods to access this information. The configuration will also need tobe updated accordingly to point to the new class and workflow.Sounds like a good project.Beset of luck.Ben.

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 8/9

    Like (0)

    Dhinesh A.P Aug 19, 2013 7:09 AM (in response to Ben Patterson)

    Dear Ben,I have installed EHSM 3.0. Now How do i create a role or a workflow or task. what isthe procedure to create/record a incident. What are the pre-requisites to do it.( anyconfiguration required in SAP EHS management in SPRO?. Kindly share someinformation. RegardsDhinesh

    Like (0)

    Rama Shankar Aug 28, 2013 5:38 PM

    Hello Ben: Thanks for publishing this informative blog. Rama Shankar

    Like (0)

    Venkat Ratnam naidu Mar 24, 2014 5:03 PM

    Hello Ben ,Thank you for the Blog..We Have a requirement to remove the radio buttons in the incident adim investigation tabalso change the text for the fieldsPlease advice how i can acheive that . Thank you ,Venkat Ratnam Naidu

    Like (0)

    Massimo Olivieri Mar 24, 2014 5:20 PM (in response to Venkat Ratnam naidu)

    hi,1) Enhancement componet configuration of investigation tab2) use KEYWORD in CMOD

    Like (0)

    Venkat Ratnam naidu Mar 24, 2014 7:28 PM (in response to Massimo Olivieri)

    Hi Massimo ,since the component of investigation tab is dynamically coming form FPM tabbeduibb .i could not see the option for this .text and UI are created dynamically . is there are any place we maintain the texts in the configuration level . anywhere inclass we control the ui elements .i have some basic idea about FPM and experience in Web dynpro . i could not seeany thing in feeder class level .please suggest . Thanks in advance , Venkat Ratnam Naidu

    Like (1)

    Massimo Olivieri Mar 25, 2014 10:50 AM (in response to Venkat Ratnam naidu)

    you can start from componet configurationEHHSS_INC_REC_OIF_V3_INVTAB_MD and Enhancement UIBByou need.

    Text can from data element, if you use KEYWORD inCMOD to change description. fields label update in WD.Or text are ORT text, you must copy or overwrite standardtext.

    Like (0)

    Venkat Ratnam naidu Mar 25, 2014 4:32 PM (in response to MassimoOlivieri)

    Thanks Massimo for the input actually able to change in FPMchange group level itself

    GUORONG CHEN Jun 12, 2014 12:51 AM

  • 9/9/2014 Enhancing SAP EHSM : Overview | SCN

    http://scn.sap.com/community/ehs-management/blog/2012/12/13/enhancing-sap-ehsm-overview 9/9

    Follow SCNSite Index Contact Us SAP Help PortalPrivacy Terms of Use Legal Disclosure Copyright

    Like (0)

    Hi Ben and other EHSM experts, Could you help me with the following questions? 1) For EHSM Incident Management Analytic Reports, are they all come from BW/BI, or from EHSMdirectly? I mean can I have these reports without BW/BI in the landscape? 2) How the Phrase Library (ex, bodyparts, etc) be used in FPM? Or I have to store them in Z tables? Thanks, Guorong

    Like (0)

    Vimal Sharma Jul 9, 2014 9:14 AM

    Hi All, I have a requirement where i need to change the message text after clicking "Send" button whilecreating Incident.How to find the feeder class and method which is called behind "Send" button ? Thanks,Vimal

    Like (0)

    Abraham Castro Aug 21, 2014 5:30 AM

    Hi Ben, Im looking for examples about the implementing a Freestyle GUIBB inside an EHS IncidentReport Screen. Im new in EHS development, and I dont understand how to implement /BOFU/CL_FREESTYLE_BOPF_HELPER class to handle the data referred to the incident. I recently created a thread: FBI Freestyle Helper Sample Implementation The Freestyle GUIBB has been implemented, but I cant access any data of the BOPF Data Model. I appreciate some help, thanks!!!