Temporal Relationships

I am a huge fan of the new advanced relationships and reasoning that are possible in 10.2. I am literally struggling to think up examples of things that cannot be modelled.
But I can't see any place to enter a temporal element to a relationship. Am I right to assume that they are not supported?
For example, if I have 2 entites, the person and the country, and a many-to-one relationship between them called the person's country of residence, then I would like to represent a person moving between countries as -
- the death of one relationship instance at a point in time, and
- the birth of another relationship instance at the same point in time,
but there doesn't seem to be any place to add changepoints on the relationships.
When I try to trick OPA into a temporal relationship by inferring the relationship from a temporal attribute, it has an error in the debugger saying "Relationship targets can only be true, false, uncertain or unknown." I agree these are the only sensible values for relationships, but I can think of many real life applications of temporal relationships, i.e. changes to them over time, like changes in family membership or employment status.
Can someone confirm the status of temporal relationships?

I can confirm that, at the moment, we don't support temporal relationships.
* You cannot enter a temporal targets for standard static relationships.
* You cannot infer relationships in such a way that the relationship would be temporal (change over time).

Similar Messages

  • How to move clips in mode like ProTools "shuffle" mode

    How do I grab something in the timeline, move it elsewhere, and have the surrounding clips snap the leaving space shut and make space for where it's going, leaving the timings after the move untouched? The closest I can get is option dragging, which leaves a copy behind, which then can be ripple deleted. Any way to to this without leaving the copy in the original location?
    In other words, if I just want to reorder some clips I want to just toss them into new locations, with the clips moving to accomodate. RTFMd over and over! : )
    Thanks!

    There are couple of different ways. But you're working with multiple tracks and different types of media in those tracks so the results are completely unpredictable unless you either do it manually or understand how ripple delete and close gap work. That is, if you lift a pice of video with linked audio tracks and then close the gap they left without carefully looking at it, all of the tracks will drop to the left and that can cause tons of items to suddenly lose their temporal relationships.
    RTFMd over and over! : ) < </div>
    Great, but you didn't know what to look for. Try looking up close gap and ripple delete.
    bogiesan

  • Exporting from .mpeg to .mov file loses sound

    Okays so I know that there are numerous forum discussions out there on this topic but none helped me figure out my problem so I decided to create my own.
    I'm trying to take a xxx.mpeg file and convert it to a smaller xxx_web.mov file that I can use for posting on the web and sending to friends easily over ichat. To get my mpeg file I:
    1. used mac-the-ripper to get the Video_TS folder from a DVD with now encryption.
    2. then I took that .VOB file from that and drug it into MPEG Streamclip to convert the .VOB file to an xxx.mpeg.
    All is well up till this point and xxx.mpeg plays fine with sound. Next I tried to use quicktime pro to export my xxx.mpeg file to xxx_web.mov. This gave me video with now sound
    Then I read about mpegs being muxed and I needed to demux them. So I used MPEG Streamclip to demux xxx.mpeg with the following option from MPEG Streamclip:
    DEMUX to M2V and AIFF.
    This worked succussfully as well with the M2V file playing normally in quicktime with sound. I then tried to export the M2V file to a .mov file and got the same outcome...video but no sound.
    Can someone walk me through what I'm doing wrong? Also I just started using MPEG Streamclip can it do everything i'm trying to do (meaning can I bypass using quicktime pro)?
    Thank you.

    1. used mac-the-ripper to get the Video_TS folder from a DVD with now encryption.
    If the source DVD is not encrypted, then the VIDEO_TS folder or desired non-zero title VOB series can be copied directly to your hard drive without the use of MTR.
    2. then I took that .VOB file from that and drug it into MPEG Streamclip to convert the .VOB file to an xxx.mpeg... I'm trying to take a xxx.mpeg file and convert it to a smaller xxx_web.mov file that I can use for posting on the web and sending to friends easily over ichat.
    If you goal is to create a small, web compatible file, you should convert to your final target compression format while in MPEG Streamclip. Most Apple applications use the H.264/AAC compression format for posting to web sites since it generally produces the smallest file for a given level of quality. For instance, selecting the "Export to MPEG-4..." option in MPEG Streamclip, pressing the "iTunes" button, and then selecting an appropriate size/aspect combination will automatically load user settings to create your final file. The 640x480 or 640x360 iTunes option will produce a file similar to the iTunes option in QT Pro (or iTunes) but will also retain your audio.
    All is well up till this point and xxx.mpeg plays fine with sound. Next I tried to use quicktime pro to export my xxx.mpeg file to xxx_web.mov. This gave me video with now sound
    QT Pro does not fully support multiplexed MPEG compression formats. An MPEG (MPEG2/MP2) compression format will play in the QT player with the QT MPEG-2 Playback component installed but cannot be edited or converted and retain the audio. To retain the audio, you must use a third-party, MPEG-based conversion application like MPEG Streamclip.
    Then I read about mpegs being muxed and I needed to demux them. So I used MPEG Streamclip to demux xxx.mpeg with the following option from MPEG Streamclip:
    DEMUX to M2V and AIFF.
    This work flow creates two elementary stream files. Both the M2V (with MPEG-2 component installed) and the AIFF file are QT Pro compatible. However, they must always be stored together on your hard drive. Since the M2V video file "resources" the AIFF audio in a separate file, if the files are separated, this reference will be orphaned and, as you have seen, you again end up losing your audio.
    I just started using MPEG Streamclip can it do everything i'm trying to do (meaning can I bypass using quicktime pro)?... Can someone walk me through what I'm doing wrong?
    Already covered. (See above.)
    If I export to any format (QuickTime movie, AVI, Windows Media, MPEG-4), all of the audio options are greyed out. Some say explicitly that there is no audio in the source movie. If I go ahead, I get a file with no audio.
    The "Save" and "Save As..." options do not convert the compression format. They merely take the data (which you already said plays correctly) and places it in an MOV file container where it continues to play correctly. On the other hand, when you attempt to convert the file to other compression formats (i.e., change the data within the container), then you lose the audio. As indicated above, multiplexed formats like MPEG-2 video with MPEG-1 layer 2 audio are playback only compatible with the QT structure. If you wish to convert the data to a different format and retain the audio, use a third-party, MPEG-based application.
    QuickTime is obviously able to decode the .m1a audio since it can play it. Why does it seem to not be aware the audio is there if I try to export it?
    Because QT is based on a multi-track engine that synchronizes audio and video frames with reference to external clocking. On the other hand, multiplexed content divides the audio and video into interspersed blocks of data synchronized spatially within a single data stream. QT could theoretically create two separate streams of data but has no way of synchronizing any single frame of audio with its video frame counterpart. The MPEG Streamclip engine can do this but requires the QT MPEG-2 Playback component to then bridge the gap between spatial and temporal based playback engines. Without this temporal relationship the QT player would probably return the infamous "Not a movie" message.

  • Script that implements a ripple edit?

    Hi There,
    I realize that AE is not an editor, but is there a way to script a ripple edit for all layers other than the one being adjusted?  For example, let's say I have a video footage layer that has a start time somewhere in the middle of a 8 second comp, and it has a duration of only 1 second--a placeholder video.  Other layers surround this placeholder video with graphical overalys, animations, effects, etc.  Now, I want to swap the 1 second video for an 5 second video.  Is there any way via scripting to shift the layers so that they maintain the same temporal relationship to each other in the timeline?  I think what my question boils down to is if there is a script that allows for a ripple edit to occur after a video layer has been swapped for another?
    I took a look at Jeff Almosol's rdShifter and it seems to do a good job of shifting around layers' in and out points.  Is that the only thing out there for shifting layers?
    Thanks for your time and help! 
    Best,
    Laz

    I suppose the problem is - what is animated and what is not animated in the other layers and how do you automate how those keyframes are treated. Also how would the comp length and in/out points be affected by the swap.  Also if your new clip was 5 times longer - would the other layers scale from their original inpoints or scale from an average point? (Assuming there are keyframes on them) or perhaps the keyframes would not scale.
    I think there would be a lot of variables there unless you were working with the same rule day in day out.
    Not exactly what u need - but I do minor editing in AFX so these help..
    AED_SelectHereDown - Selects all layers under the currently selected layer, to aid with basic editing and  layer sliding.Sometimes it is useful when you need to slide a large group of layers. Alt&Clicking - selects here up instead.
    AED_KillDeadSpace - Searches comp and removes any space between layers by ripple editing backwards. Useful when there are accidental gaps between edits. There is an option to ‘Preserve overlaps’. This will not slide the layers back if layer B’s start comes before layer A’s outpoint. (if you have some transition operations in place). Check out the video tutorial for more clarity on this one. Alt&Click works in the opposite layer stacking order, if you work that way.
    AED_AutoTrimmer -Set your time in frames using Shift+Click. Trims one selected layer to the time chosen(using work area). Then pushes the work area forward by the chosen time and leaves cursor in the centre. This allows you to slide a layer to find a good key point in the footage, then go again. Great for selecting clips quickly that need to be a specific duration and assembling a quick edit.

  • MPEG2 Muxed - No Audio

    I just bought a Sony Handycam DCR-SR80 Hard Drive based camera. The file format it records in is MPEG2 Muxed. Now, everything is fine when you record it and play it back in every app besides quicktime, imovie, itunes. Obviously everything is centered around quicktime. My question is, after laying down 800 dollars for this camera, will quicktime and all my other apps support this camera without me having to use other apps to convert the files? Is there a way I can get imovie alone to work? Thanks

    Question: since hard drive based camcorders seem to be the future, anyone have any insight as to whether and when Apple will upgrade its apps (QT, iMovie, Final Cut Express, etc) to integrate the new technology? Is there any way to import audio with my MPEG2 files into iMovie/iDVD or Final Cut Express?This is probably a "not gonna happen" type thing. Basically, there are two forces working against it.
    This first is the fact that the MPEG-2 format is, to be frank, somewhat old and not worth the time and trouble when newer, more efficient formats like MPEG-4/AVC (H.264) are available for handling HD content at MPEG-2 data rates.
    The second is the difference in technology involved. Basically, audio and video content can be synchronized either in terms of time or space. QT employs "temporal" relationships for its "frame-to-frame" synchronization strategy while both "muxed" and interleafed files employ "spatial" relationships. For instance, MPEG-1/MPEG-2 audio/video data is stored in alternating "blocks" of autio and video data in a single stream or track. As such, it remains synchronized because one form of data cannot physically "overrun" or "outrun" the other. AVI, while assigning audio and video data to separate streams, are physically interleaved in order to maintain synchronization. (Think of this as two separate tracks with "meshed cogs" which force the relative speed of one track to remain constant in comparison to the other. Lastly, you have QT synchronization which is based on an arbitrary unit of time which is used as a "frame of reference" for synchronization. This approach offers both advantages and disadvantages. For instance, QT technology does not require that every audio or video frame of data be played. This means the QT structure can have a wider range of platform CPU power requirements with older, less CPU intensive formats. (I.e., an older platform simply drops more and more frames during playback until the structure finally decides it can no longer keep up.) On the other hand, any reliance on a time reference means the playback software is very sensative to loss or absence of timing reference data. (Ever wonder about those "timecode breaks" and why part of an MPEG2 file appears to be missing or why a QT file won't load a file when it can't find a proper file termination?)
    I guess you might simply say that Apple is betting that time reference based file formats will dominate the future of multimedia and they are less than williing to support what they consider outmoded and/or hybrid technologies. (Consider how long took for public opinion to get Apple to even support "muxed" MPEG-2 video with an add-on component.)

  • Temporal reasoning

    I'm having some difficulty in using temporal reasoning, I believe I'm nearly there but not quite.
    Here's what I'm trying to work out:
    the applicant is spending time with the person for at least 10 hours a week for at least 9 weeks of the last 19 weeks
    Here is what I have underneath it at the moment:
    intervalatleastdays(19 weeks before the relevant date, the relevant date, 63, the claimant regularly spends time with the person for at least 10 hours a week)
    where
    the claimant regularly spends time with the person for at least 10 hours a week > 10
    and
    19 weeks before the relevant date = addweeks(the relevant date,-19)
    and
    the relevant date is the date of the application
    Can someone please take a look and let me know where this may be going wrong? In particular calculating the 9 weeks of the last 19 weeks
    Many thanks

    Depending on how tricky you want/need to get, you might be able to get away with just using regular entity reasoning.
    Here are some ideas... (caveat: not properly tested, just ideas of an approach!)
    Entity structure*
    Containment relationship: Global --> one-to-many --> the week (relationship text: the weeks)
    Rules*
    the applicant has spent time with the person for at least 10 hours per week for at least 9 weeks of the 19 weeks prior to the application date if
    the number of relevant weeks for which the applicant has spent at least 10 hours per week with the person >= 10
    the number of relevant weeks for which the applicant has spent at least 10 hours per week with the person = InstanceCountIf(the weeks, the week should be included in the assessment)
    the week should be included in the assessment if
    the applicant has spent at least 10 hours with the person during the week and
    the start date of the week >= the day 19 weeks before the application date and
    the start date of the week <= the application date
    the applicant has spent at least 10 hours with the person during the week if
    the number of hours the applicant has spent with the person during the week >= 10
    the day 19 weeks before the application date = AddWeeks(the application date, -19)
    Comments*
    With the rules above, you'd have an entity representing each week, and each of those weeks would have a start date and a number of hours the applicant spent with the person. At the Global level the input is the application date.
    There are a whole lot of other things you'd need to consider though, such as:
    * What is a "week"? Is it a week relative to the application date? I.e. If the application date falls on a Wednesday, does the week start on the prior Thursday? Or does a week always start on the same weekday, e.g. Monday. If a week always starts on a set weekday, then what happens if the application date falls on, say, a Friday? Is the start of the most recent week the Monday of that week? Or is it the Monday of the previous week (i.e. the Monday of the first full week)?
    * How should the determination be handled if you don't have data for the 19 consecutive weeks prior to the application date?
    * Do you need to determine a rolling eligibility? I.e. If you had 50 weeks of data, do you need to be able to pick any week and know (from the perspective of that particular week) whether the goal is satisfied -- obviously the answer could vary from week to week. This is possible using inferred relationships and cross entity reasoning.
    Cheers,
    Jasmine

  • Error relationship one to many

    I'm having a problem using JPA (toplink) / Jaybird with a relationship for many:
    Call the methods:
    EmpresaFacadeRemote empresa = (EmpresaFacadeRemote) ic.lookup("br.teste.app.beans.EmpresaFacadeRemote");
    empresa.createEmpresa(jtfRasaoSocial.getText(), jtfNomeFantasia.getText(), jtfCpfCnpj.getText(), jtfRgInscEstadual.getText());
    empresa.addMeioContato(meiosContatoList);package br.teste.app.beans;
    <strong>Session Beans:</strong>
    import br.teste.app.entidades.MeioContato;
    import br.teste.app.entidades.Pessoa;
    import java.util.List;
    import javax.ejb.Stateful;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    import javax.persistence.PersistenceContextType;
    * @author kurumin
    @Stateful
    public class EmpresaFacade implements EmpresaFacadeRemote {
        @PersistenceContext(type=PersistenceContextType.TRANSACTION)
        private EntityManager em;
        public Pessoa createEmpresa(String rasaoSocial, String nomeFantasia, String cnpj, String inscricaiEstadual) {
            this.empresa = new Pessoa(rasaoSocial, nomeFantasia, cnpj, inscricaiEstadual,"EM",'J');
            em.persist(empresa);
            return empresa;
        public Pessoa createEmpresa(Pessoa empresa, List&lt;MeioContato&gt; meiosContatoList) {
            this.empresa = empresa;
            empresa.setMeioContatoCollection(meiosContatoList);
            em.persist(empresa);
            return empresa;
        public void addMeioContato(List&lt;MeioContato&gt; meiosContatoList) {
            this.empresa.setMeioContatoCollection(meiosContatoList);
            em.merge(empresa);
        private Pessoa empresa;
    <strong>Entity Beans</strong>
    package br.teste.app.entidades;
    import java.io.Serializable;
    import java.util.Collection;
    import java.util.Date;
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
    * @author kurumin
    @Entity
    @Table(name = "PESSOA")
    @NamedQueries({@NamedQuery(name = "Pessoa.findByCodigo", query = "SELECT p FROM Pessoa p WHERE p.codigo = :codigo")})
    public class Pessoa implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @Column(name = "CODIGO", nullable = false)
        private Integer codigo;
        @Column(name = "NOME", nullable = false)
        private String nome;
        @Column(name = "APELIDO")
        private String apelido;
        @Column(name = "CPF_CNPJ", nullable = false)
        private String cpfCnpj;
        @Column(name = "RG_INSCRICAO")
        private String rgInscricao;
        @Column(name = "ORGAO_EXPEDIDOR")
        private String orgaoExpedidor;
        @Column(name = "UF")
        private String uf;
        @Column(name = "FOTO_LOGOMARCA")
        private String fotoLogomarca;
        @Column(name = "TIPO", nullable = false)
        private String tipo;
        @Column(name = "TIPO_PESSOA", nullable = false)
        private char tipoPessoa;
        @Column(name = "DATA_CADASTRO")
        @Temporal(TemporalType.DATE)
        private Date dataCadastro;
        @Column(name = "OBSERVACAO")
        private String observacao;
        @OneToMany(cascade = CascadeType.ALL, mappedBy = "pessoaCodg")
        private Collection&lt;MeioContato&gt; meioContatoCollection;
        public Pessoa() {
        public Pessoa(String nome, String apelido, String cpfCnpj, String rgInscricao,
                     String orgaoExpedidor, String uf, String tipo, char tipoPessoa) {
            this.nome = nome;
            this.apelido = apelido;
            this.cpfCnpj = cpfCnpj;
            this.rgInscricao = rgInscricao;
            this.orgaoExpedidor = orgaoExpedidor;
            this.uf = uf;
            this.tipo = tipo;
            this.tipoPessoa = tipoPessoa;      
        public Pessoa(String nome, String apelido, String cpfCnpj, String rgInscricao,
                                                      String tipo, char tipoPessoa) {
            this.nome = nome;
            this.apelido = apelido;
            this.cpfCnpj = cpfCnpj;
            this.rgInscricao = rgInscricao;
            this.tipo = tipo;
            this.tipoPessoa = tipoPessoa;
        public Integer getCodigo() {
            return codigo;
        public void setCodigo(Integer codigo) {
            this.codigo = codigo;
        public String getNome() {
            return nome;
        public void setNome(String nome) {
            this.nome = nome;
        public String getApelido() {
            return apelido;
        public void setApelido(String apelido) {
            this.apelido = apelido;
        public String getCpfCnpj() {
            return cpfCnpj;
        public void setCpfCnpj(String cpfCnpj) {
            this.cpfCnpj = cpfCnpj;
        public String getRgInscricao() {
            return rgInscricao;
        public void setRgInscricao(String rgInscricao) {
            this.rgInscricao = rgInscricao;
        public String getOrgaoExpedidor() {
            return orgaoExpedidor;
        public void setOrgaoExpedidor(String orgaoExpedidor) {
            this.orgaoExpedidor = orgaoExpedidor;
        public String getUf() {
            return uf;
        public void setUf(String uf) {
            this.uf = uf;
        public String getFotoLogomarca() {
            return fotoLogomarca;
        public void setFotoLogomarca(String fotoLogomarca) {
            this.fotoLogomarca = fotoLogomarca;
        public String getTipo() {
            return tipo;
        public void setTipo(String tipo) {
            this.tipo = tipo;
        public char getTipoPessoa() {
            return tipoPessoa;
        public void setTipoPessoa(char tipoPessoa) {
            this.tipoPessoa = tipoPessoa;
        public Date getDataCadastro() {
            return dataCadastro;
        public void setDataCadastro(Date dataCadastro) {
            this.dataCadastro = dataCadastro;
        public String getObservacao() {
            return observacao;
        public void setObservacao(String observacao) {
            this.observacao = observacao;
        public Collection&lt;MeioContato&gt; getMeioContatoCollection() {
            return meioContatoCollection;
        public void setMeioContatoCollection(Collection&lt;MeioContato&gt; meioContatoCollection) {
            this.meioContatoCollection = meioContatoCollection;
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (codigo != null ? codigo.hashCode() : 0);
            return hash;
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Pessoa)) {
                return false;
            Pessoa other = (Pessoa) object;
            if ((this.codigo == null && other.codigo != null) || (this.codigo != null && !this.codigo.equals(other.codigo))) {
                return false;
            return true;
        @Override
        public String toString() {
            return "br.teste.app.entidades.Pessoa[codigo=" + codigo + "]";
    package br.teste.app.entidades;
    import java.io.Serializable;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;
    * @author kurumin
    @Entity
    @Table(name = "MEIO_CONTATO")
    @NamedQueries({@NamedQuery(name = "MeioContato.findByMeioContato", query = "SELECT m FROM MeioContato m WHERE m.meioContato = :meioContato")})
    public class MeioContato implements Serializable {
        private static final long serialVersionUID = 1L;
        @Column(name = "MEIO_CONTATO", nullable = false)
        private String meioContato;
        @Column(name = "TIPO", nullable = false)
        private String tipo;
        @Column(name = "RESPONSAVEL")
        private String responsavel;
        @Id
        @Column(name = "DESCRICAO", nullable = false)
        private String descricao;
        @Column(name = "SETOR")
        private String setor;
        @JoinColumn(name = "PESSOA_CODG", referencedColumnName = "CODIGO")
        @ManyToOne
        private Pessoa pessoaCodg;
        public MeioContato() {
        public MeioContato(String tipo, String meioContato, String setor, String resposavel, String descricao) {
            this.descricao = descricao;
            this.meioContato = meioContato;
            this.tipo = tipo;
            this.responsavel = resposavel;
            this.setor = setor;
        public String getMeioContato() {
            return meioContato;
        public void setMeioContato(String meioContato) {
            this.meioContato = meioContato;
        public String getTipo() {
            return tipo;
        public void setTipo(String tipo) {
            this.tipo = tipo;
        public String getResponsavel() {
            return responsavel;
        public void setResponsavel(String responsavel) {
            this.responsavel = responsavel;
        public String getDescricao() {
            return descricao;
        public void setDescricao(String descricao) {
            this.descricao = descricao;
        public String getSetor() {
            return setor;
        public void setSetor(String setor) {
            this.setor = setor;
        public Pessoa getPessoaCodg() {
            return pessoaCodg;
        public void setPessoaCodg(Pessoa pessoaCodg) {
            this.pessoaCodg = pessoaCodg;
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (descricao != null ? descricao.hashCode() : 0);
            return hash;
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof MeioContato)) {
                return false;
            MeioContato other = (MeioContato) object;
            if ((this.descricao == null && other.descricao != null) || (this.descricao != null && !this.descricao.equals(other.descricao))) {
                return false;
            return true;
        @Override
        public String toString() {
            return "br.teste.app.entidades.MeioContato[descricao=" + descricao + "]";
    <font color="#ff0000">Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544665. violation of PRIMARY or UNIQUE KEY constraint "UNQ_PESSOA_CPF" on table "PESSOA"
    Error Code: 335544665
    Call: INSERT INTO PESSOA (CODIGO, UF, FOTO_LOGOMARCA, APELIDO, TIPO, RG_INSCRICAO, TIPO_PESSOA, NOME, DATA_CADASTRO, ORGAO_EXPEDIDOR, OBSERVACAO, CPF_CNPJ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
            bind =&gt; [null, null, null, kjkjk, EM, jkjljlj, J, julkjlkjl, null, null, null, jkjkj222]</font>
    Another way to call the methods:
            EmpresaFacadeRemote empresa = (EmpresaFacadeRemote) ic.lookup("br.teste.app.beans.EmpresaFacadeRemote");
            private Pessoa entidadePessoa = new Pessoa(jtfRasaoSocial.getText(), jtfNomeFantasia.getText(),  jtfCpfCnpj.getText(), jtfRgInscEstadual.getText(),"EM",'J');
            empresa.createEmpresa(entidadePessoa,meiosContatoList);
    package br.teste.app.beans;<br />
    <br />
    <strong>Session Beans:</strong><br />
    <br />
    import br.teste.app.entidades.MeioContato;<br />
    import br.teste.app.entidades.Pessoa;<br />
    import java.util.List;<br />
    import javax.ejb.Stateful;<br />
    import javax.persistence.EntityManager;<br />
    import javax.persistence.PersistenceContext;<br />
    import javax.persistence.PersistenceContextType;<br />
    <br />
    /**<br />
    *<br />
    * @author kurumin<br />
    */<br />
    @Stateful<br />
    public class EmpresaFacade implements EmpresaFacadeRemote {<br />
        @PersistenceContext(type=PersistenceContextType.TRANSACTION)<br />
        private EntityManager em;<br />
       <br />
        public Pessoa createEmpresa(String rasaoSocial, String nomeFantasia, String cnpj, String inscricaiEstadual) {<br />
            this.empresa = new Pessoa(rasaoSocial, nomeFantasia, cnpj, inscricaiEstadual,"EM",'J');<br />
            em.persist(empresa);<br />
            return empresa;<br />
        }<br />
    <br />
        public Pessoa createEmpresa(Pessoa empresa, List&lt;MeioContato&gt; meiosContatoList) {<br />
            this.empresa = empresa;<br />
            empresa.setMeioContatoCollection(meiosContatoList);<br />
            em.persist(empresa);<br />
            return empresa;<br />
        }<br />
       <br />
        public void addMeioContato(List&lt;MeioContato&gt; meiosContatoList) {<br />
            this.empresa.setMeioContatoCollection(meiosContatoList);<br />
            em.merge(empresa);<br />
        }<br />
       <br />
        private Pessoa empresa;<br />
    <br />
    }<br />
    <br />
    <strong>Entity Beans</strong><br />
    <br />
    <br />
    package br.teste.app.entidades;<br />
    <br />
    import java.io.Serializable;<br />
    import java.util.Collection;<br />
    import java.util.Date;<br />
    import javax.persistence.CascadeType;<br />
    import javax.persistence.Column;<br />
    import javax.persistence.Entity;<br />
    import javax.persistence.Id;<br />
    import javax.persistence.NamedQueries;<br />
    import javax.persistence.NamedQuery;<br />
    import javax.persistence.OneToMany;<br />
    import javax.persistence.Table;<br />
    import javax.persistence.Temporal;<br />
    import javax.persistence.TemporalType;<br />
    <br />
    /**<br />
    *<br />
    * @author kurumin<br />
    */<br />
    @Entity<br />
    @Table(name = "PESSOA")<br />
    @NamedQueries({@NamedQuery(name = "Pessoa.findByCodigo", query = "SELECT p FROM Pessoa p WHERE p.codigo = :codigo"), @NamedQuery(name = "Pessoa.findByNome", query = "SELECT p FROM Pessoa p WHERE p.nome = :nome"), @NamedQuery(name = "Pessoa.findByApelido", query = "SELECT p FROM Pessoa p WHERE p.apelido = :apelido"), @NamedQuery(name = "Pessoa.findByCpfCnpj", query = "SELECT p FROM Pessoa p WHERE p.cpfCnpj = :cpfCnpj"), @NamedQuery(name = "Pessoa.findByRgInscricao", query = "SELECT p FROM Pessoa p WHERE p.rgInscricao = :rgInscricao"), @NamedQuery(name = "Pessoa.findByOrgaoExpedidor", query = "SELECT p FROM Pessoa p WHERE p.orgaoExpedidor = :orgaoExpedidor"), @NamedQuery(name = "Pessoa.findByUf", query = "SELECT p FROM Pessoa p WHERE p.uf = :uf"), @NamedQuery(name = "Pessoa.findByFotoLogomarca", query = "SELECT p FROM Pessoa p WHERE p.fotoLogomarca = :fotoLogomarca"), @NamedQuery(name = "Pessoa.findByTipo", query = "SELECT p FROM Pessoa p WHERE p.tipo = :tipo"), @NamedQuery(name = "Pessoa.findByTipoPessoa", query = "SELECT p FROM Pessoa p WHERE p.tipoPessoa = :tipoPessoa"), @NamedQuery(name = "Pessoa.findByDataCadastro", query = "SELECT p FROM Pessoa p WHERE p.dataCadastro = :dataCadastro"), @NamedQuery(name = "Pessoa.findByObservacao", query = "SELECT p FROM Pessoa p WHERE p.observacao = :observacao")})<br />
    public class Pessoa implements Serializable {<br />
        private static final long serialVersionUID = 1L;<br />
        @Id<br />
        @Column(name = "CODIGO", nullable = false)<br />
        private Integer codigo;<br />
        @Column(name = "NOME", nullable = false)<br />
        private String nome;<br />
        @Column(name = "APELIDO")<br />
        private String apelido;<br />
        @Column(name = "CPF_CNPJ", nullable = false)<br />
        private String cpfCnpj;<br />
        @Column(name = "RG_INSCRICAO")<br />
        private String rgInscricao;<br />
        @Column(name = "ORGAO_EXPEDIDOR")<br />
        private String orgaoExpedidor;<br />
        @Column(name = "UF")<br />
        private String uf;<br />
        @Column(name = "FOTO_LOGOMARCA")<br />
        private String fotoLogomarca;<br />
        @Column(name = "TIPO", nullable = false)<br />
        private String tipo;<br />
        @Column(name = "TIPO_PESSOA", nullable = false)<br />
        private char tipoPessoa;<br />
        @Column(name = "DATA_CADASTRO")<br />
        @Temporal(TemporalType.DATE)<br />
        private Date dataCadastro;<br />
        @Column(name = "OBSERVACAO")<br />
        private String observacao;<br />
        @OneToMany(cascade = CascadeType.ALL, mappedBy = "pessoaCodg")<br />
        private Collection&lt;MeioContato&gt; meioContatoCollection;<br />
    <br />
        public Pessoa() {<br />
        }<br />
    <br />
        public Pessoa(String nome, String apelido, String cpfCnpj, String rgInscricao,<br />
                     String orgaoExpedidor, String uf, String tipo, char tipoPessoa) {<br />
            this.nome = nome;<br />
            this.apelido = apelido;<br />
            this.cpfCnpj = cpfCnpj;<br />
            this.rgInscricao = rgInscricao;<br />
            this.orgaoExpedidor = orgaoExpedidor;<br />
            this.uf = uf;<br />
            this.tipo = tipo;<br />
            this.tipoPessoa = tipoPessoa;       <br />
        }<br />
    <br />
        public Pessoa(String nome, String apelido, String cpfCnpj, String rgInscricao,<br />
                                                      String tipo, char tipoPessoa) {<br />
            this.nome = nome;<br />
            this.apelido = apelido;<br />
            this.cpfCnpj = cpfCnpj;<br />
            this.rgInscricao = rgInscricao;<br />
            this.tipo = tipo;<br />
            this.tipoPessoa = tipoPessoa;<br />
        }<br />
    <br />
        public Integer getCodigo() {<br />
            return codigo;<br />
        }<br />
    <br />
        public void setCodigo(Integer codigo) {<br />
            this.codigo = codigo;<br />
        }<br />
    <br />
        public String getNome() {<br />
            return nome;<br />
        }<br />
    <br />
        public void setNome(String nome) {<br />
            this.nome = nome;<br />
        }<br />
    <br />
        public String getApelido() {<br />
            return apelido;<br />
        }<br />
    <br />
        public void setApelido(String apelido) {<br />
            this.apelido = apelido;<br />
        }<br />
    <br />
        public String getCpfCnpj() {<br />
            return cpfCnpj;<br />
        }<br />
    <br />
        public void setCpfCnpj(String cpfCnpj) {<br />
            this.cpfCnpj = cpfCnpj;<br />
        }<br />
    <br />
        public String getRgInscricao() {<br />
            return rgInscricao;<br />
        }<br />
    <br />
        public void setRgInscricao(String rgInscricao) {<br />
            this.rgInscricao = rgInscricao;<br />
        }<br />
    <br />
        public String getOrgaoExpedidor() {<br />
            return orgaoExpedidor;<br />
        }<br />
    <br />
        public void setOrgaoExpedidor(String orgaoExpedidor) {<br />
            this.orgaoExpedidor = orgaoExpedidor;<br />
        }<br />
    <br />
        public String getUf() {<br />
            return uf;<br />
        }<br />
    <br />
        public void setUf(String uf) {<br />
            this.uf = uf;<br />
        }<br />
    <br />
        public String getFotoLogomarca() {<br />
            return fotoLogomarca;<br />
        }<br />
    <br />
        public void setFotoLogomarca(String fotoLogomarca) {<br />
            this.fotoLogomarca = fotoLogomarca;<br />
        }<br />
    <br />
        public String getTipo() {<br />
            return tipo;<br />
        }<br />
    <br />
        public void setTipo(String tipo) {<br />
            this.tipo = tipo;<br />
        }<br />
    <br />
        public char getTipoPessoa() {<br />
            return tipoPessoa;<br />
        }<br />
    <br />
        public void setTipoPessoa(char tipoPessoa) {<br />
            this.tipoPessoa = tipoPessoa;<br />
        }<br />
    <br />
        public Date getDataCadastro() {<br />
            return dataCadastro;<br />
        }<br />
    <br />
        public void setDataCadastro(Date dataCadastro) {<br />
            this.dataCadastro = dataCadastro;<br />
        }<br />
    <br />
        public String getObservacao() {<br />
            return observacao;<br />
        }<br />
    <br />
        public void setObservacao(String observacao) {<br />
            this.observacao = observacao;<br />
        }<br />
    <br />
        public Collection&lt;MeioContato&gt; getMeioContatoCollection() {<br />
            return meioContatoCollection;<br />
        }<br />
    <br />
        public void setMeioContatoCollection(Collection&lt;MeioContato&gt; meioContatoCollection) {<br />
            this.meioContatoCollection = meioContatoCollection;<br />
        }<br />
    <br />
        @Override<br />
        public int hashCode() {<br />
            int hash = 0;<br />
            hash += (codigo != null ? codigo.hashCode() : 0);<br />
            return hash;<br />
        }<br />
    <br />
        @Override<br />
        public boolean equals(Object object) {<br />
            // TODO: Warning - this method won't work in the case the id fields are not set<br />
            if (!(object instanceof Pessoa)) {<br />
                return false;<br />
            }<br />
            Pessoa other = (Pessoa) object;<br />
            if ((this.codigo == null && other.codigo != null) || (this.codigo != null && !this.codigo.equals(other.codigo))) {<br />
                return false;<br />
            }<br />
            return true;<br />
        }<br />
    <br />
        @Override<br />
        public String toString() {<br />
            return "br.teste.app.entidades.Pessoa[codigo=" + codigo + "]";<br />
        }<br />
    <br />
    }<br />
    <br />
    <br />
    package br.teste.app.entidades;<br />
    <br />
    import java.io.Serializable;<br />
    import javax.persistence.Column;<br />
    import javax.persistence.Entity;<br />
    import javax.persistence.Id;<br />
    import javax.persistence.JoinColumn;<br />
    import javax.persistence.ManyToOne;<br />
    import javax.persistence.NamedQueries;<br />
    import javax.persistence.NamedQuery;<br />
    import javax.persistence.Table;<br />
    <br />
    /**<br />
    *<br />
    * @author kurumin<br />
    */<br />
    @Entity<br />
    @Table(name = "MEIO_CONTATO")<br />
    @NamedQueries({@NamedQuery(name = "MeioContato.findByMeioContato", query = "SELECT m FROM MeioContato m WHERE m.meioContato = :meioContato"), @NamedQuery(name = "MeioContato.findByTipo", query = "SELECT m FROM MeioContato m WHERE m.tipo = :tipo"), @NamedQuery(name = "MeioContato.findByResponsavel", query = "SELECT m FROM MeioContato m WHERE m.responsavel = :responsavel"), @NamedQuery(name = "MeioContato.findByDescricao", query = "SELECT m FROM MeioContato m WHERE m.descricao = :descricao"), @NamedQuery(name = "MeioContato.findBySetor", query = "SELECT m FROM MeioContato m WHERE m.setor = :setor")})<br />
    public class MeioContato implements Serializable {<br />
        private static final long serialVersionUID = 1L;<br />
        @Column(name = "MEIO_CONTATO", nullable = false)<br />
        private String meioContato;<br />
        @Column(name = "TIPO", nullable = false)<br />
        private String tipo;<br />
        @Column(name = "RESPONSAVEL")<br />
        private String responsavel;<br />
        @Id<br />
        @Column(name = "DESCRICAO", nullable = false)<br />
        private String descricao;<br />
        @Column(name = "SETOR")<br />
        private String setor;<br />
        @JoinColumn(name = "PESSOA_CODG", referencedColumnName = "CODIGO")<br />
        @ManyToOne<br />
        private Pessoa pessoaCodg;<br />
    <br />
        public MeioContato() {<br />
        }<br />
    <br />
        public MeioContato(String tipo, String meioContato, String setor, String resposavel, String descricao) {<br />
            this.descricao = descricao;<br />
            this.meioContato = meioContato;<br />
            this.tipo = tipo;<br />
            this.responsavel = resposavel;<br />
            this.setor = setor;<br />
        }<br />
    <br />
        public String getMeioContato() {<br />
            return meioContato;<br />
        }<br />
    <br />
        public void setMeioContato(String meioContato) {<br />
            this.meioContato = meioContato;<br />
        }<br />
    <br />
        public String getTipo() {<br />
            return tipo;<br />
        }<br />
    <br />
        public void setTipo(String tipo) {<br />
            this.tipo = tipo;<br />
        }<br />
    <br />
        public String getResponsavel() {<br />
            return responsavel;<br />
        }<br />
    <br />
        public void setResponsavel(String responsavel) {<br />
            this.responsavel = responsavel;<br />
        }<br />
    <br />
        public String getDescricao() {<br />
            return descricao;<br />
        }<br />
    <br />
        public void setDescricao(String descricao) {<br />
            this.descricao = descricao;<br />
        }<br />
    <br />
        public String getSetor() {<br />
            return setor;<br />
        }<br />
    <br />
        public void setSetor(String setor) {<br />
            this.setor = setor;<br />
        }<br />
    <br />
        public Pessoa getPessoaCodg() {<br />
            return pessoaCodg;<br />
        }<br />
    <br />
        public void setPessoaCodg(Pessoa pessoaCodg) {<br />
            this.pessoaCodg = pessoaCodg;<br />
        }<br />
    <br />
        @Override<br />
        public int hashCode() {<br />
            int hash = 0;<br />
            hash += (descricao != null ? descricao.hashCode() : 0);<br />
            return hash;<br />
        }<br />
    <br />
        @Override<br />
        public boolean equals(Object object) {<br />
            // TODO: Warning - this method won't work in the case the id fields are not set<br />
            if (!(object instanceof MeioContato)) {<br />
                return false;<br />
            }<br />
            MeioContato other = (MeioContato) object;<br />
            if ((this.descricao == null && other.descricao != null) || (this.descricao != null && !this.descricao.equals(other.descricao))) {<br />
                return false;<br />
            }<br />
            return true;<br />
        }<br />
    <br />
        @Override<br />
        public String toString() {<br />
            return "br.teste.app.entidades.MeioContato[descricao=" + descricao + "]";<br />
        }<br />
    <br />
    }<br />
    <br />
    <br />
    <font color="#ff0000">Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException<br />
    Internal Exception: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544665. violation of PRIMARY or UNIQUE KEY constraint "UNQ_PESSOA_CPF" on table "PESSOA"<br />
    Error Code: 335544665<br />
    Call: INSERT INTO PESSOA (CODIGO, UF, FOTO_LOGOMARCA, APELIDO, TIPO, RG_INSCRICAO, TIPO_PESSOA, NOME, DATA_CADASTRO, ORGAO_EXPEDIDOR, OBSERVACAO, CPF_CNPJ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)<br />
            bind =&gt; [null, null, null, kjkjk, EM, jkjljlj, J, julkjlkjl, null, null, null, jkjkj222]</font><br />
    <br />
    <br />
    <br />
    Another way to call the methods:
    <br />
    <br />
            EmpresaFacadeRemote empresa = (EmpresaFacadeRemote) ic.lookup("br.teste.app.beans.EmpresaFacadeRemote");<br />
            private Pessoa entidadePessoa = new Pessoa(jtfRasaoSocial.getText(), jtfNomeFantasia.getText(),  jtfCpfCnpj.getText(), jtfRgInscEstadual.getText(),"EM",'J');<br />
            empresa.createEmpresa(entidadePessoa,meiosContatoList);<font color="#ff0000">Local Exception Stack:
    Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
    Internal Exception: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544347. validation error for column PESSOA_CODG, value "*** null ***"
    Error Code: 335544347
    Call: INSERT INTO MEIO_CONTATO (DESCRICAO, RESPONSAVEL, TIPO, SETOR, MEIO_CONTATO, PESSOA_CODG) VALUES (?, ?, ?, ?, ?, ?)
    bind =&gt; [(74)3611-3308), Jo&atilde;o da Silva, Resid&ecirc;ncial, Compras, Resid&ecirc;ncial, null]
    Query: InsertObjectQuery(br.teste.app.entidades.MeioContato[descricao=(74)3611-3308)])</font>

    Why when you call this method and gives this error, is as provider of persitência were trying to insert the object Pessoa again?!?!
    Note: The object is persisted in the same person now!
        public Pessoa createEmpresa(Pessoa empresa, List<MeioContato> meiosContatoList) {
            this.empresa = empresa;
            this.empresa.setMeioContatoCollection(meiosContatoList);
            em.persist(this.empresa);
            return this.empresa;
    {code}<br /><br /><br /><br /><br /><br />{color:#ff0000}Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException<br /><br />Internal Exception: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544665. violation of PRIMARY or UNIQUE KEY constraint "PK_PESSOA" on table "PESSOA"<br /><br />Error Code: 335544665<br /><br />Call: INSERT INTO PESSOA (CODIGO, UF, FOTO_LOGOMARCA, APELIDO, TIPO, RG_INSCRICAO, TIPO_PESSOA, NOME, DATA_CADASTRO, ORGAO_EXPEDIDOR, OBSERVACAO, CPF_CNPJ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)<br /><br />        bind =&gt; [68, null, null, lkjlkjlkjl, EM, jljljljljl, J, jjljljl, null, null, null, jljljlk]<br /><br />{color}<br />                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Characteristic Relationship BI-IP

    Hi,
    I am trying to create the following characteristic relationship on real time planning cube.
    Within the realtime cube I have 0fiscper and 0fiscvarnt being populated.
    I also want to calculate 0calquarter and 0halfyear1.
    For this I have created a DSO which has 0fiscper and 0fiscvarnt as the key and 0calquarter and 0halfyear1 as the data fields. I am populating 0fiscper and 0fiscvarnt during the upload and calculating 0calquarter and 0halfyear1 via a routine.
    I am now trying to create the characteristic relationship, but when I enter the DSO technical name, I get the following error message:
    DataStore object '....' does not have a data field from the InfoProvider; this object is invalid here.
    Any ideas why this happening, all the fields in the DSO exist in the realtime cube.
    Thanks
    DJL

    Hi
    For time characteristics, there are standard characteristic relationships.. dont see why need to create them.
    if it is for fiscvarnt-fiscper combination: guess no need for other things.
    Also if u r specifying DSO name in planning modeler, I guess u can look up the DSO thru F4 help.
    rgds
    Deepak

  • Training and Event Management: Relationships

    Hi TEM Experts,
    What are the appropriate steps, or best practice, if the event we want to add is a one off, and wasn't really scheduled? Do we need to go through the entire PSV1, PV12, etc. process just to add a one off event so that it shows up on the employee training report? What if we only want to create the relationship between person and business event type, but what report to run to show it?
    Thanks in advance,
    Susan
    Edited by: Susan Wong on Oct 27, 2008 9:15 AM

    Hi,
    Relationships in TEM
    1. A025 is participated by Person (P) for the course (E) - P to E relation A025 (Participated by)
    2. Org unit - A025 (Taken part) for the course (E) - O to E relation A025 (Taken part)
    Tha above said are only sample relationship in TEM, pl check table T777E for further relationships.
    Pl let us know if you are not understood.
    Appriciate awarding points.
    Thanks,
    Nandagopal C
    Edited by: Nandagopal Chiranjeevi on Oct 29, 2008 12:56 PM

  • How can I display  contacts in a relationship

    I have companies in my CRM. I have a customers/contacts in the CRM I have tied as a relationship with each companies. How can I display all the records/contacts associated with a company? I have a already created a secure zone, so the company user would have logged in. Is this possible? If not, any workaround?
    The only workaround I thought of is to use webapp to import the company data and create another web app containing the employees data. Then link both tables/webapp using datasource. But the way the client's data is structured could create a lot of problems going forward.
    Any suggestion, help will be appreciated

    The relationship feature and how companies work currently in BC is really limited. It is an association and not true relationships at the moment. You cant output a company and show all its relationships at the moment.

  • Error while adding a used relationship between the New DC and the Web DC

    Hi Gurus
    We are getting the Error in NWDS while Adding  a used relationship between the New DC and the Web DC.
    Steps what we are Done
    1. Create the custom project from inactiveDC's
    2.creating the project for the component crm/b2b in SHRAPP_1
    3.After that we changed the application.xml and given the contect path.
    4.Then we tried to add Dependency to the custom create DC we are getting the error saying that illegal deppendency : the compartment sap.com_CUSTCRMPRJ_1 of DC sap.com/home/b2b_xyz(sap.com.CUSTCRMPRJ_1) must explicitly use compartment sap.com_SAP-SHRWEB_1 of DC sap.com/crm/isa/ like that it was throwing the error.
    so, we skip this step and tried to create the build then it is saying that build is failed..
    Please help us in this regard.
    Awaiting for ur quick response...
    Regards
    Satish

    Hi
    Please Ignore my above message.
    Thanks for ur Response.
    After ur valuble inputs we have added the required dependencies and sucessfully created the projects, then building of the  projects was also sucessfully done and  EAR file was created.
    We need to deploy this EAR file in CRM Application Server by using the interface NWDI.
    For Deploying the EAR into NWDI, we need to check-in the activites what i have created for EAR. once i check-in the activites ,the NWDI will deploy the EAR into CRM Application Server.
    In the Activity Log we are able to check the Activities as Suceeded but the Deployment column is not showing any status.
    When i  right click on my activity Id the deployment summery is also disabled.
    So finally my Question is that where can i get the deployment log file, and where can i check the deployment status for my application..
    Any pointers in this regard would be of great help..
    Awaiting for ur valuble Responses..
    Regards
    Satish

  • Automatic creation of BP relationship while BP is created

    We are implementing CRM SALES and using Portal as the user interface.
    The requirement is that a Sales Rep should be able to see only the
    accounts and contacts (which is nothing but Business partners in the
    GUI side) that they have created when they list account using  "My
    Accounts" in Portal. We are configuring Portal in a such a way that
    "My Accoounts" is the only view available for Sales Rep portal.
    I have tested and found that if a relationship category of "is the
    reponsible employee" is created from  the sales rep to the Account OR
    Contact then that account or contact will be displayed in the "My
    Accounts" or "My Contact"view in Portal.
    But requesting a Sales Rep to create the relationship for every
    Account and Contact that they create in CRM will NOT be accpetable at
    all.
    Hence I am looking for an option with which a relationship of "is the
    Responsible Employee" can be created automatically when an account or
    contact is created by the Sales Rep.
    Please let me know your ideas.

    Hi Rajadurai,
    In the BADI - BUPA_FURTHER_CHECKS implement the method - CHECK_CENTRAL.
    The following code could serve your purpose:
    IF IV_ACTIVITY eq '01'. "Check if it is for creation
      CALL FUNCTION 'BUPR_RELATIONSHIP_CREATE'
       EXPORTING
        IV_PARTNER_1 = IV_PARTNER
        IV_PARTNER_2 = LV_createdby "BP no of the creator
        IV_RELATIONSHIP = 'BUR011' "Code for emp. resp
        IV_DATE_FROM = SY-DATLO
        IV_DATE_TO = '99991231'.
    endif.

  • Creation of new fields for business partner relationship

    Hi experts,
    We are currently on SAP CRM 7.0 EHP1.
    We have a requirement to maintain a custom checkbox (Relevant for business) on each business partner relationship.
    Can you please let us know on how we can achive this requirement.
    Thanks in advance,
    Vamsi.
    Moderation: Duplicated. I lock this one and continue here: [Create a new field in Business Partner Relationships|Create a new field in Business Partner Relationships#10795912]
    Edited by: Joaquin Fornas on Nov 8, 2011 12:17 PM

    Please, anyone can help?
    Thanks!!

  • Creation of New field in Relationship block of contact page

    Hi,
    I have created a new field as value attribute in Relationship block of contact overview page. Since both AET and EEWB did not allow creation of the field as part of BUT051 I had to create value atribute. I have custom logic for the field. Can you please let me know how I can populate the field.
    Thanks,
    JC

    Hi JC,
    The context node that you are using is a mixed node, so from this node you need to get value node so that you can cast the value into cl_bsp_wd_value_node.
    Here's the sample code for getter and setter method of that attribute:
    DATA:
       lr_mixed TYPE REF TO cl_bsp_wd_mixed_node,
       lr_value_node TYPE REF TO cl_bsp_wd_value_node.
    lr_mixed ?= current  or lr_mixed ?= iterator. " use either of the code i dont have system right now
    lr_value_node ?=  lr_mixed_node->if_bsp_wd_ext_property_access~get_value_node( ).
    Here, from lr_value_node get the property access method and set the attribute value to VALUE parameter.
    Thats it
    Thanks,
    Bhushan

  • Problems in creation of activity with the folder relationship...

    Hi People,
    I need to create the activity adding the campaign in the RELATIONSHIP folder.
    To create the activity, I am using the BAPI BAPI_ACTIVITYCRM_CREATEMULTI, but there is the problem: I can´t add the campaign at the folder RELATIONSHIP of transaction CRMD_BUS2000126. Is it possible to create this?
    If not, Is there the other function that do this?
    Thanks,
    Regards.

    Hi Florin,
    At First, thank you for your help.
    Really, I don´t populate the table DOCUMENT_FLOW.
    Sorry, do you have an example to populate this table correctly? Or do you have any documentation about this BAPI?
    Thanks.
    Best Regards.
    Norberto Muramoto.

Maybe you are looking for