[gelöst] Button / Eigene ASP einbinden

21. Juni 2010 11:46

Hallo zusammen,

ich würde gerne links im Hauptmenü einen eigenen Button machen, aber ohne Entität und rechs sollte dann eine eigene ASP Seite angezeigt werden.
Ist das so möglich?

Anbei eine Photomontage, wie ich mir das vorstelle:
bild.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von tw-elektric am 1. Juli 2010 11:14, insgesamt 1-mal geändert.

Re: Button / Eigene ASP einbinden

21. Juni 2010 16:23

Hallo,

das ist ganz einfach. Du kannst über die Sitemap beliebige Menüpunkte hinzufügen und dann deine eigene ASPX-Seite starten, siehe

Re: Button / Eigene ASP einbinden

22. Juni 2010 08:08

Hallo Michae,

danke für den Tipp.
Habe nunn versucht die ISV anzupassen.
Leider weiß ich nicht genau, an welcher stelle dies stehen muss.
Habe es so, aber ohne Erfolg, versucht:

Code:
<ImportExportXml version="4.0.0.0" languagecode="1031" generatedBy="OnPremise">
  <Entities>
  </Entities>
  <Roles>
  </Roles>
  <Workflows>
  </Workflows>
  <IsvConfig>
    <configuration version="3.0.0000.0">
      <Root />
      <!-- Microsoft Customer Relationship Management Entities (Objects) -->
      <Entities>
        <Entity name="activitypointer">
          <Grid>
            <MenuBar>
              <Buttons>
                <Button Icon="/_imgs/ico_32_134.gif" JavaScript="&#xD;&#xA;&#xD;&#xA;                        var grid = document.getElementById('gridBodyTable');&#xD;&#xA;&#xD;&#xA;                        var a = document.all['crmGrid'].InnerGrid.SelectedRecords; &#xD;&#xA;&#xD;&#xA;                        var selectedItems = new Array(a.length); &#xD;&#xA;&#xD;&#xA;                        for (var i=0; i &lt; a.length; i++) &#xD;&#xA;&#xD;&#xA;                        { &#xD;&#xA;&#xD;&#xA;                        var stateReq = '';&#xD;&#xA;&#xD;&#xA;                        var stateType = '';&#xD;&#xA;&#xD;&#xA;                        var state = 'Completed';&#xD;&#xA;&#xD;&#xA;                        var status = '-1';&#xD;&#xA;&#xD;&#xA;                         if(a[i][1] == '4212')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateTaskRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'Task';&#xD;&#xA;&#xD;&#xA;                          }&#xD;&#xA;&#xD;&#xA;                        else if(a[i][1] == '4210')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStatePhoneCallRequest'; &#xD;&#xA;&#xD;&#xA;                          stateType= 'PhoneCall';&#xD;&#xA;&#xD;&#xA;                          }&#xD;&#xA;&#xD;&#xA;                        else if(a[i][1] == '4207')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateLetterRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'Letter';&#xD;&#xA;&#xD;&#xA;                        }&#xD;&#xA;&#xD;&#xA;                        else if(a[i][1] == '4204')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateFaxRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'Fax';&#xD;&#xA;&#xD;&#xA;                        }&#xD;&#xA;&#xD;&#xA;                        else if(a[i][1] == '4214')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateServiceAppointmentRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'ServiceAppointment';&#xD;&#xA;&#xD;&#xA;                          state = 'Closed';&#xD;&#xA;&#xD;&#xA;                        }&#xD;&#xA;&#xD;&#xA;                        else if(a[i][1] == '4201')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateAppointmentRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'Appointment';&#xD;&#xA;&#xD;&#xA;                        }&#xD;&#xA;&#xD;&#xA;                       else if(a[i][1] == '4402')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateCampaignActivityRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'CampaignActivity';&#xD;&#xA;&#xD;&#xA;                          state = 'Closed';&#xD;&#xA;&#xD;&#xA;                        }&#xD;&#xA;&#xD;&#xA;                       else if(a[i][1] == '4401')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateCampaignResponseRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'CampaignResponse';&#xD;&#xA;&#xD;&#xA;                       }&#xD;&#xA;&#xD;&#xA;                       else if(a[i][1] == '4202')&#xD;&#xA;&#xD;&#xA;                         {&#xD;&#xA;&#xD;&#xA;                          stateReq = 'SetStateEmailRequest';&#xD;&#xA;&#xD;&#xA;                          stateType= 'Email';&#xD;&#xA;&#xD;&#xA;                        }&#xD;&#xA;&#xD;&#xA;                            var xml = '' + &#xD;&#xA;&#xD;&#xA;'&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;' + &#xD;&#xA;&#xD;&#xA;                            '&lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;' + &#xD;&#xA;&#xD;&#xA;                            '  &lt;soap:Header&gt;' + &#xD;&#xA;&#xD;&#xA;                '    &lt;CrmAuthenticationToken xmlns=&quot;http://schemas.microsoft.com/crm/2007/WebServices&quot;&gt;' + &#xD;&#xA;&#xD;&#xA;                            '      &lt;AuthenticationType xmlns=&quot;http://schemas.microsoft.com/crm/2007/CoreTypes&quot;&gt;0&lt;/AuthenticationType&gt;' + &#xD;&#xA;&#xD;&#xA;                            '      &lt;OrganizationName xmlns=&quot;http://schemas.microsoft.com/crm/2007/CoreTypes&quot;&gt;tw-elektric&lt;/OrganizationName&gt;' + &#xD;&#xA;&#xD;&#xA;                            '      &lt;CallerId xmlns=&quot;http://schemas.microsoft.com/crm/2007/CoreTypes&quot;&gt;00000000-0000-0000-0000-000000000000&lt;/CallerId&gt;' + &#xD;&#xA;&#xD;&#xA;                            '    &lt;/CrmAuthenticationToken&gt;' + &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;                            '  &lt;/soap:Header&gt;' + &#xD;&#xA;&#xD;&#xA;                            '  &lt;soap:Body&gt;' + &#xD;&#xA;&#xD;&#xA;                            '    &lt;Execute xmlns=&quot;http://schemas.microsoft.com/crm/2007/WebServices&quot;&gt;' + &#xD;&#xA;&#xD;&#xA;                            '      &lt;Request xsi:type=&quot;'+stateReq+'&quot;&gt;' + &#xD;&#xA;&#xD;&#xA;                            '        &lt;EntityId&gt;' + a[i][0] + '&lt;/EntityId&gt;' + &#xD;&#xA;&#xD;&#xA;                            '        &lt;'+stateType+'State&gt;'+state+'&lt;/'+stateType+'State&gt;'+&#xD;&#xA;&#xD;&#xA;                            '        &lt;'+stateType+'Status&gt;' +  status + '&lt;/'+stateType+'Status&gt;'+&#xD;&#xA;&#xD;&#xA;                            '    &lt;/Request&gt;' + &#xD;&#xA;&#xD;&#xA;                            '    &lt;/Execute&gt;' + &#xD;&#xA;&#xD;&#xA;                            '  &lt;/soap:Body&gt;' + &#xD;&#xA;&#xD;&#xA;                            '&lt;/soap:Envelope&gt;' + &#xD;&#xA;&#xD;&#xA;                            '';&#xD;&#xA;&#xD;&#xA;                            var xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP');&#xD;&#xA;&#xD;&#xA;                            xmlHttpRequest.Open('POST', '/mscrmservices/2007/CrmService.asmx', false);&#xD;&#xA;&#xD;&#xA;                            xmlHttpRequest.setRequestHeader('SOAPAction','http://schemas.microsoft.com/crm/2007/WebServices/Execute');&#xD;&#xA;&#xD;&#xA;                            xmlHttpRequest.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');&#xD;&#xA;&#xD;&#xA;                            xmlHttpRequest.setRequestHeader('Content-Length', xml.length);&#xD;&#xA;&#xD;&#xA;                            xmlHttpRequest.send(xml);&#xD;&#xA;&#xD;&#xA;                            var resultXml = xmlHttpRequest.responseXML;                        &#xD;&#xA;&#xD;&#xA;                        } &#xD;&#xA;&#xD;&#xA;                        window.crmGrid.Refresh(); &#xD;&#xA;&#xD;&#xA;" Client="Web, Outlook" AvailableOffline="true">
                  <Titles>
                    <Title LCID="1033" Text="Aktivitäten schließen" />
                  </Titles>
                  <ToolTips>
                    <ToolTip LCID="1033" Text="Schließt alle selektierten Aktivitäten." />
                  </ToolTips>
                </Button>
              </Buttons>
            </MenuBar>
          </Grid>
        </Entity>
        <Entity name="new_vertriebstour">
          <ToolBar ValidForCreate="0" ValidForUpdate="1">
            <Button Icon="/_imgs/ico_18_debug.gif" JavaScript="" PassParams="1" WinParams="" WinMode="0" Client="Web, Outlook" AvailableOffline="true">
              <Titles>
                <Title LCID="1033" Text="GPS" />
              </Titles>
              <ToolTips>
                <ToolTip LCID="1033" Text="GPS Daten downloaden" />
              </ToolTips>
            </Button>
          </ToolBar>
        </Entity>
      </Entities>
    
     <Group Id="Extensions" ResourceId="Group_Extensions">
       <SubArea Id="Umkreissuche" Entity="Umkreissuche" Url="http://srv04" />
     </Group>
         
      <!-- Microsoft Customer Relationship Management Service Management Customization -->
      <ServiceManagement>
        <AppointmentBook>
          <SmoothScrollLimit>2000</SmoothScrollLimit>
          <TimeBlocks>
            <!-- All CSS Class mapping for Service activities -->
            <TimeBlock EntityType="4214" StatusCode="1" CssClass="ganttBlockServiceActivityStatus1" />
            <TimeBlock EntityType="4214" StatusCode="2" CssClass="ganttBlockServiceActivityStatus2" />
            <TimeBlock EntityType="4214" StatusCode="3" CssClass="ganttBlockServiceActivityStatus3" />
            <TimeBlock EntityType="4214" StatusCode="4" CssClass="ganttBlockServiceActivityStatus4" />
            <TimeBlock EntityType="4214" StatusCode="6" CssClass="ganttBlockServiceActivityStatus6" />
            <TimeBlock EntityType="4214" StatusCode="7" CssClass="ganttBlockServiceActivityStatus7" />
            <TimeBlock EntityType="4214" StatusCode="8" CssClass="ganttBlockServiceActivityStatus8" />
            <TimeBlock EntityType="4214" StatusCode="9" CssClass="ganttBlockServiceActivityStatus9" />
            <TimeBlock EntityType="4214" StatusCode="10" CssClass="ganttBlockServiceActivityStatus10" />
            <!-- All CSS Class mapping for Appointments -->
            <TimeBlock EntityType="4201" StatusCode="1" CssClass="ganttBlockAppointmentStatus1" />
            <TimeBlock EntityType="4201" StatusCode="2" CssClass="ganttBlockAppointmentStatus2" />
            <TimeBlock EntityType="4201" StatusCode="3" CssClass="ganttBlockAppointmentStatus3" />
            <TimeBlock EntityType="4201" StatusCode="4" CssClass="ganttBlockAppointmentStatus4" />
            <TimeBlock EntityType="4201" StatusCode="5" CssClass="ganttBlockAppointmentStatus5" />
            <TimeBlock EntityType="4201" StatusCode="6" CssClass="ganttBlockAppointmentStatus6" />
          </TimeBlocks>
        </AppointmentBook>
      </ServiceManagement>
    </configuration>
  </IsvConfig>
  <EntityMaps />
  <EntityRelationships />
  <Languages>
    <Language>1031</Language>
    <Language>1033</Language>
  </Languages>
</ImportExportXml>

Re: Button / Eigene ASP einbinden

22. Juni 2010 11:05

Hallo,
nicht die ISV-Config, sondern die Sitemap musst du anpassen. Und in dieser startest du dann deine eigene ASPX-Seite, so das du den JavaScript Code in der ISV-Config nicht mehr benötigst.

Re: Button / Eigene ASP einbinden

22. Juni 2010 11:29

sorry, hatte ich überlesen.

Nun habe ich es richtig eingefügt, es kam kein Fehler. Aber leider sehe ich noch nichts:

Code:
        <Group Id="Extensions" ResourceId="Group_Extensions">
          <SubArea Id="new_twbericht" Entity="new_twbericht" />
          <SubArea Id="new_offer" Entity="new_offer" />
          <SubArea Id="new_order" Entity="new_order" />
          <SubArea Id="new_vertriebstour" Entity="new_vertriebstour" />
         <SubArea Id="Umkreissuche" Entity="Umkreissuche" Url="http://srv04" />
        </Group>

Re: Button / Eigene ASP einbinden

22. Juni 2010 14:21

Hallo,

wo ist denn die ASPX-Datei?
http://srv04 ist doch nur der Server, du musst ihm schon den kompletten Pfad und den Namen der Datei mitgeben.

Re: Button / Eigene ASP einbinden

22. Juni 2010 15:11

michael sulz hat geschrieben:Hallo,

wo ist denn die ASPX-Datei?
http://srv04 ist doch nur der Server, du musst ihm schon den kompletten Pfad und den Namen der Datei mitgeben.



es wird automatisch vom IIS die Standardsite geöffnet. Aber ich habe es nun mit vollem Pfadnamen gemacht.
Leider auch ohne Erfolg:
Code:
<Group Id="Extensions" ResourceId="Group_Extensions">
          <SubArea Id="new_twbericht" Entity="new_twbericht" />
          <SubArea Id="new_offer" Entity="new_offer" />
          <SubArea Id="new_order" Entity="new_order" />
          <SubArea Id="new_vertriebstour" Entity="new_vertriebstour" />
          <SubArea Id="Umkreissuche" Entity="Umkreissuche" Icon="/_imgs/ico_18_minicamps.gif" Url="http://srv04/default.aspx" />        
        </Group>

Re: Button / Eigene ASP einbinden

22. Juni 2010 16:53

Hallo,

default.aspx ist deine eigene ASPX-Seite, die du selbst erstellt hast und jetzt starten möchtest?

Oder versuchst du gerade, das CRM innerhalb des CRMs zu starten?

Re: Button / Eigene ASP einbinden

23. Juni 2010 08:41

JA,

das CRM liegt unter http://srv04:5555
Und mein eigenes ASP Projekt liegt unter http://srv04/default.aspx
Das ist meine langersehnte Umkreissuche, welche mir nach Kundennummer und Umkreis alle Kunden in dem gewählten Umkreis anzeigt.

Diese will ich wie beschrieben direkt einbinden!

Re: Button / Eigene ASP einbinden

23. Juni 2010 12:06

OK,

was passiert, wenn du im Browser die URL direkt eingibst?

Wird deine Seite geöffnet oder eine Standardseite des IIS?

Re: Button / Eigene ASP einbinden

23. Juni 2010 13:02

Es wird meine Seite geöffnet, wenn ich http://srv04/default.aspx eingeben.

Ich kann aber auch http://srv04/121212 eingeben, dann wird direkt nach der Kundennummer 121212 gesucht.

Ich glaube auch nicht, dass es an der URL liegt.
habe es eben so versucht, aber auch ohne Erfolg. Der Menüeintrag wird nicht angezeigt:

<SubArea Id="Umkreissuche" Entity="Umkreissuche" Icon="/_imgs/ico_18_minicamps.gif" Url="http://www.microsoft.com/en/us/default.aspx" />

Re: Button / Eigene ASP einbinden

23. Juni 2010 16:12

Hallo,

poste doch mal deine Sitemap, da muss etwas anderes falsch sein. Wenn du sie hier nicht veröffentlichen möchtest, kannst du mir sie auch gerne per PN schicken.

Re: Button / Eigene ASP einbinden

24. Juni 2010 08:58

Hallo Michale,

anbei die Sitemap. Musst die Datei dann wieder in XML umbenennen...

Danke
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Button / Eigene ASP einbinden

24. Juni 2010 14:43

Hi!

tw-elektric hat geschrieben:<SubArea Id="Umkreissuche" Entity="Umkreissuche" Icon="/_imgs/ico_18_minicamps.gif" Url="http://srv04/default.aspx" />

Gibt es bei Dir denn auch eine Entität namens "Umkreissuche"? Falls nicht, würde ich es mal ohne den Eintrag Entity="Umkreissuche" versuchen. ich könnte mir gut vorstellen, dass CRM sonst rumzickt, wenn Du da auf eine nicht existente Entität verweist...

Gruß,
Daniel

Re: Button / Eigene ASP einbinden

24. Juni 2010 16:07

Okay.

Ich habe keine Entität. Wenn ich den Eintrag so wie du beschrieben hast abändere. Funktioniert nichts mehr ^^
Nun bin ich hin und habe eine neue Entität erstellt.

Und schon klappt es in der Sitemap. Aber eig. brauche ich ja keine Entität.
Ist es evtl. auch ohne Entität möglich?

Re: Button / Eigene ASP einbinden

24. Juni 2010 16:20

Hmm... eigentlich müsste das auch so funktionieren. In der Standard-Sitemap sind ja schließlich auch Einträge wie der dieser:
Code:
<SubArea Id="nav_syscust" ResourceId="Homepage_SystemCustomization" Icon="/_imgs/area/18_syscust.gif" Url="/tools/systemcustomization/systemcustomization.aspx" Client="Web" />

Sicher, dass Du nicht irgendeinen anderen Fehler drin hattest, als Du es ohne Entity versucht hast? (z.B. ein Formatierungsfehler, fehlende oder überflüssige Anführungszeichen... sowas passiert mir immer ;) )

Gruß,
Daniel

Re: Button / Eigene ASP einbinden

25. Juni 2010 10:10

Naja, wenn ich deine Zeile einfüge, so funktioniert dies.
Ändere ich nun aber Id= und RescourceId= ab in Umrkeissuche, so geht wieder nichts.

Re: Button / Eigene ASP einbinden

25. Juni 2010 10:55

Hi Daniel!

Das mit der RessourceId könnte auch noch ein Problem sein, denn da sucht CRM in der Datenbank nach einem entsprechenden Eintrag. Das dient glaube ich der Unterstützung der Mehrsprachigkeit. Also RessourceId auch weg!
Ich habe in unserer Sitemap zwar bisher keine eigenen Seiten aufgerufen, aber ich habe z.B. eine eigene Gruppe eingefügt. Das sieht dann so aus:
Code:
        <Group Id="Stammdaten" Title="Stammdaten" Description="Stammdaten">
          <Titles>
            <Title LCID="1033" Title="Stammdaten" />
          </Titles>
          <Descriptions>
            <Description LCID="1033" Description="Stammdaten" />
          </Descriptions>

Vielleicht versuchst Du mal was in dieser Richtung.

Gruß,
Daniel

Re: Button / Eigene ASP einbinden

25. Juni 2010 13:20

Hallo,

ich habe das jetzt gerade einmal auf meinem Testsystem nachgestellt.
Wenn ich den folgenden Eintrag verwende:
<SubArea Id="sulz_projekt" Entity="sulz_projekt" Url="http://www.microsoft.com" />

wird der Menüpunkt angezeigt und der Link wird richtig aufgerufen. Wichtig hierfür ist, das es die angegebene Entität auch gibt, und hier wird der Fehler liegen. Ich glaube nicht, das du eine Entität Umkreissuche hast, die wird wohl new_umkreissuche heißen.

Re: Button / Eigene ASP einbinden

25. Juni 2010 14:11

Hallo zusammen!

Es geht ja darum, einen Link auf eine eigene Seite in die Sitemap zu bekommen ohne dafür extra eine neue Entität anlegen zu müssen. Ich habe das jetzt nochmal in meiner Testumgebung ausprobiert und folgendes hat funktioniert:

Code:
<SubArea Id="nav_sitemaptest" Title="*Test*" Description="Testlink" Icon="/_imgs/mwde_25x13.png" Url="/ISV/Testseite.aspx" />


Gruß,
Daniel

Re: Button / Eigene ASP einbinden

25. Juni 2010 15:59

Vielen Dank, nun geht es und ich konnte meine unnötige Entität "new_umkreissuche" wieder löschen.

Von den Berechtigungen müsste es ja nun so sein, dass der Menüpunkt bei alles Usern angezeigt wird. oder?

Re: Button / Eigene ASP einbinden

30. Juni 2010 16:42

Hallo!

Freut mich, dass es läuft. Wenn Du die Zeile so wie beschrieben in die Sitemap eingebaut hast, dann sollte jeder das sehen können. Wenn Du in der Sitemap mit Berechtigungen arbeiten willst, dann schau Dir mal den <privilege ... /> -Tag an.

Viele Grüße,
Daniel